我目前正在重构iPad应用程序,而不是在NavigationBar上重构按钮,而是将注销按钮作为TabBar按钮项放置。
我所有的视图都位于一个独特的StoryBoard中,因此我可以通过以下方式在Appdelegate.m中获取TabBar:
// Add logout tab to tabbar
storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UITabBarController *tabbar = (UITabBarController *)[storyboard instantiateViewControllerWithIdentifier:@"tabbar"];
[tabbar setDelegate:self];
当然,委托协议是在我的Appdelegate.h中声明的
@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>
之后,我创建一个空的viewController来创建我的注销选项卡:
UIViewController *logout = [[UIViewController alloc]init];
然后我将Tabbar viewControllers作为NSMutableArray并添加我的注销VC:
NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:[tabbar viewControllers]];
[viewControllers addObject:logout];
最后,我用新数组设置了标签栏viewControllers:
[tabbar setViewControllers:viewControllers];
我认为这些步骤是正确的。那么,为什么在更改显示的选项卡时未调用didSelectViewController?
如果有帮助,这是我的didSelectViewController方法(在AppDelegate.m中编写)
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
NSLog(@"onglet sélectionné : %d / %d", [tabBarController selectedIndex], [[tabBarController viewControllers]count]);
//select the index where your logout button is
if ([tabBarController selectedIndex] == [[tabBarController viewControllers]count]-1) {
NSLog(@"logout");
}
}
在此先感谢您的帮助 !
放入[self setDelegate:self];
您的ViewDidLoad或初始化该对象的位置
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句