我有一个带有多个 nib 的 TabBar 应用程序,大多数带有 NavBar。它工作得很好,除了 tabBar 的“更多”部分内的“视图”。
正如预期的那样,它将把一个导航栏返回到“更多”列表,以及我放在笔尖中的导航栏。
我试图从 moreNavigationBar 中删除视图控制器,并将顶部控制器从我的 nib 的 navBar 中,但我从某个地方获得了额外的视图:
- (void)viewDidLoad {
TestAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
UITabBarController *ctrl = appDelegate.rootController;
UINavigationController *navCtrl = ctrl.moreNavigationController;
[navCtrl popToRootViewControllerAnimated: NO];
[navCtrl pushViewController: navController.topViewController animated: YES];
navController = navCtrl;
[super viewDidLoad];
}
我的 AppDelegate:
@interface TestAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
UITabBarController *rootController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *rootController;
MainWindow nib 是带有 TabBarController 的基于窗口的项目的 nib,链接到我的应用程序委托中的 rootController。
其他笔尖有一个视图 + 导航控制器,我有一个 UITableViewController 子类作为我的根视图控制器。
如果我能让它工作,它仍然不能解决我的问题,因为我想允许用户将它放在 tabBar 的任何地方,所以,我必须有一些方法知道是否有一个导航栏。
所以,我的问题是,你怎么知道是否有一个 navigationBar(在这种情况下,如果 tabBar 的 navigationBar 正在显示),如果是这样,我如何让我的 navigationController “成为” tabBar 的 navigationController?
或者,如果您对如何解决此问题有其他想法,我也将不胜感激:)