我想知道是否有一種方法可以添加額外的UITabBarItem
到我現有的UITabBarController
。它不需要在運行時。添加額外的UITabbarItem到UITabbarController
我想要做的就是按下這個按鈕時,我想要presentModalViewController:
超過我實際上可見的ViewController,它應該是TabBarController或它的控制器。
希望這是足夠清楚的,如果不是,請隨時問。
我想知道是否有一種方法可以添加額外的UITabBarItem
到我現有的UITabBarController
。它不需要在運行時。添加額外的UITabbarItem到UITabbarController
我想要做的就是按下這個按鈕時,我想要presentModalViewController:
超過我實際上可見的ViewController,它應該是TabBarController或它的控制器。
希望這是足夠清楚的,如果不是,請隨時問。
作爲我的研究結果,您不能將UITabBarItem添加到由UITabBarController管理的UITabBar。
既然你也許已經通過添加視圖控制器列表中所增加的UITabBarItem,這也是你的選擇,以進一步增加自定義UITabBarItems的方式,因爲我現在將顯示:
先決條件:
tabbarController = [[UITabBarController alloc] init]; // tabbarController has to be defined in your header file
FirstViewController *vc1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:[NSBundle mainBundle]];
vc1.tabBarItem.title = @"First View Controller"; // Let the controller manage the UITabBarItem
SecondViewController *vc2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:[NSBundle mainBundle]];
vc2.tabBarItem.title = @"Second View Controller";
[tabbarController setViewControllers:[NSArray arrayWithObjects: vc1, vc2, nil]];
tabbarController.delegate = self; // do not forget to delegate events to our appdelegate
添加自定義UITabBarItems:正如我之前提到的,您也許已經通過添加視圖控制器列表中所增加的UITabBarItems 現在既然你知道如何添加UITabB通過添加視圖控制器arItems,你也可以用同樣的方式來添加自定義UITabBarItems:
UIViewController *tmpController = [[UIViewController alloc] init];
tmpController.tabBarItem.title = @"Custom TabBar Item";
// You could also add your custom image:
// tmpController.tabBarItem.image = [UIImage alloc];
// Define a custom tag (integers or enums only), so you can identify when it gets tapped:
tmpController.tabBarItem.tag = 1;
修改上面的一行:
[tabbarController setViewControllers:[NSArray arrayWithObjects: vc1, vc2, tmpController, nil]];
[tmpController release]; // do not forget to release the tmpController after adding to the list
一切都很好,現在你有你的TabBar您的自定義按鈕。
如何處理這個自定義UITabBarItem的事件?
它很容易,看看:
的UITabBarControllerDelegate添加到您的AppDelegate類(或者是持有tabbarController類)。
@interface YourAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> { }
加入此功能適合的協議定義:
- (void)tabBarController:(UITabBarController *)theTabBarController didSelectViewController:(UIViewController *)viewController {
NSUInteger indexOfTab = [theTabBarController.viewControllers indexOfObject:viewController];
UITabBarItem *item = [theTabBarController.tabBar.items objectAtIndex:indexOfTab];
NSLog(@"Tab index = %u (%u), itemtag: %d", indexOfTab, item.tag);
switch (item.tag) {
case 1:
// Do your stuff
break;
default:
break;
}
}
現在你有所有你需要創建和處理自定義UITabBarItems。 希望這有助於。 玩得開心....