我正面臨着同時使用UITabBar和UINavigationBar的問題。我的意圖是讓tabBar在顯示自定義名稱的每個選項卡上顯示我的3個選項卡和navBar,並在這些選項卡的某些上另外顯示一些按鈕(如添加按鈕)。使用UITabBar和UINavigationBar
我創建了AppDelegate中的didFinishLaunchingWithOptions視圖控制器:
AAA *vc1 = [[AAA alloc] init];
BBB *vc2 = [[BBB alloc] init];
CCC *vc3 = [[CCC alloc] init];
創建的TabBar和填充它:
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[vc1, vc2, vc3];
接下來,我增加了一些標題和圖像,這些視圖控制器的tabBarItems這是所有工作正常,但比我想在應用程序頂部顯示導航欄。所以我創建了導航控制器,但我不知道我需要用什麼視圖控制器來啓動它。如果我使用vc1並將navController設置爲rootViewController,則應用程序顯示vc1的視圖並顯示navBar,但不顯示tabBar。
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:vc1];
self.window.rootViewController = navController;
//self.window.rootViewController = self.tabBarController;
我試圖設置tabBarController給init navController並設置navController爲RootViewController的 - 正確地在這種情況下的意見,和的TabBar導航欄顯示,但我沒有,可欣賞VC1,VC2,VC3相關navBarItems。
這是我如何創建navBarItems(例如,在AAA.m):
- (instancetype)init {
self = [super init];
if (self) {
UINavigationItem *navItem = self.navigationItem;
navItem.title = @"name";
}
return self;
}
什麼我需要做的,使這一切一起工作?謝謝。
編輯:
我提出了一些修改的代碼和現在的導航欄是可見的,但僅在的UINavigationController的initWithRootViewController方法設置視圖控制器。例如,在下面的代碼中,我只能看到vc2上每個視圖和導航欄上的標籤欄。我的意圖是在這三個vc上都有標籤欄和導航欄。
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:vc2];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:vc1, navController, vc3, nil];
self.window.rootViewController = self.tabBarController;
嗎? –
我希望導航欄在所有標籤欄視圖中都可見。我知道如何定製它以顯示不同視圖上的不同信息,但是在這裏,我無法使用標籤欄將其顯示出來。 –