ios – 永远不会调用UITabBarController委托方法

ios – 永远不会调用UITabBarController委托方法,第1张

概述我正在重构我的iPad应用程序而不是NavigationBar上的按钮,我想将我的Logout按钮作为TabBar按钮项. 我的所有观点都在一个独特的StoryBoard中,所以我通过这种方式在我的Appdelegate.m中获取了我的TabBar: // Add logout tab to tabbarstoryboard = [UIStoryboar 我正在重构我的iPad应用程序而不是Navigationbar上的按钮,我想将我的logout按钮作为Tabbar按钮项.

我的所有观点都在一个独特的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委托方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1074796.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存