
我的所有观点都在一个独特的StoryBoard中,所以我通过这种方式在我的Appdelegate.m中获取了我的Tabbar:
// Add logout tab to tabbarstoryboard = [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];
最后我用我的新数组设置tabbar 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中或对象初始化的地方 总结以上是内存溢出为你收集整理的ios – 永远不会调用UITabBarController委托方法全部内容,希望文章能够帮你解决ios – 永远不会调用UITabBarController委托方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)