Sam*_*007 6 objective-c uitabbarcontroller uitabbaritem uitabbar ios
我知道这个问题已被问过几次了,但是当我UITabBarController
在AppDelegate
课堂上看到这个问题时,我仍然坚持这个问题.
self.tabBarController.viewControllers =
@[aboutUsNavController,myProfileNavController,
projectsListNavController, feedsNavController,homeViewController];
Run Code Online (Sandbox Code Playgroud)
现在我想要的是在TabBar项目中feedsNavController
没有 进行任务viewWillAppear
(因为它正在推动一个过detailView
孔navigationController
).
我在同一个类中设置了委托来执行UITabBarController
委托方法:
AppDelegate *appDelegate =
(AppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.tabBarController.delegate = self;
Run Code Online (Sandbox Code Playgroud)
但
-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
只有当我切换TabBar项目时才有效,但不是第一次?
我有什么方法可以打电话UITabBarDelegate
:
-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
Run Code Online (Sandbox Code Playgroud)
为了在tabBar item
按下时获得参考?
或任何其他方法将不胜感激.
Sam*_*007 11
弄清楚这样做的方法:
实际上UITabBarControllerDelegate
只有在加载了特定选项卡时才调用方法.
因此,我[self getFeedsFromServer];
在viewDidLoad
(第一次)执行任务,然后再执行
-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
NSLog(@"Selected INDEX OF TAB-BAR ==> %i", tabBarController.selectedIndex);
if (tabBarController.selectedIndex == 3) {
[self getFeedsFromServer];
}
}
Run Code Online (Sandbox Code Playgroud)
像我想的那样工作!
归档时间: |
|
查看次数: |
8905 次 |
最近记录: |