From 10e8f8d33af4cee626bcd1fa69a362fac1962bc4 Mon Sep 17 00:00:00 2001 From: Grant Paul Date: Sat, 22 Jan 2011 22:35:52 -0800 Subject: [PATCH] Finish cydia:// URLs using the private "transient view controller" methods on UITabBarController. This allows for no tab to appear selected when on a page using a cydia:// URL. --- MobileCydia.mm | 17 +++++++---------- iPhonePrivate.h | 3 +++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/MobileCydia.mm b/MobileCydia.mm index dd2a6ff6..7a7a6a7f 100644 --- a/MobileCydia.mm +++ b/MobileCydia.mm @@ -6226,6 +6226,8 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { CYNavigationController *page([[self viewControllers] objectAtIndex:(count - i - 1)]); [page reloadData]; } + + [(CYNavigationController *) [self transientViewController] reloadData]; } - (id) initWithDatabase:(Database *)database { @@ -8221,7 +8223,6 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { bool loaded_; } -- (void) setPage:(CYViewController *)page; - (void) loadData; @end @@ -8563,13 +8564,6 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { [self complete]; } -- (void) setPage:(CYViewController *)page { - [page setDelegate:self]; - - CYNavigationController *navController = (CYNavigationController *) [tabbar_ selectedViewController]; - [navController setViewControllers:[NSArray arrayWithObject:page]]; -} - - (void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { CYNavigationController *controller = (CYNavigationController *) viewController; @@ -8879,8 +8873,11 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { - (BOOL) openCydiaURL:(NSURL *)url { CYViewController *page([self pageForURL:url]); - if (page != nil) - [self setPage:page]; + if (page != nil) { + CYNavigationController *nav = [[[CYNavigationController alloc] init] autorelease]; + [nav setViewControllers:[NSArray arrayWithObject:page]]; + [tabbar_ setTransientViewController:nav]; + } return page != nil; } diff --git a/iPhonePrivate.h b/iPhonePrivate.h index 149fdc86..818dae33 100644 --- a/iPhonePrivate.h +++ b/iPhonePrivate.h @@ -237,6 +237,9 @@ typedef enum { @interface UITabBarController (Apple) - (UITransitionView *) _transitionView; +- (UIViewController *) transientViewController; +- (void) setTransientViewController:(UIViewController *)controller; +- (void) setTransientViewController:(UIViewController *)controller animated:(BOOL)animated; @end @interface UITabBarItem (Apple) -- 2.45.2