self.tabBarController is NULL



我创建了一个UITabBarController,如下所示,并推送了一个navigationController,但我现在无法设置选项卡栏项目等的标题,因为选项卡控制器为NULL。

请你告诉我哪里出了问题。

UITabBarController *tabBarController = [[UITabBarController alloc] init];
        LoggedInFeedNavigationController *lvc = [[LoggedInFeedNavigationController alloc] initWithAccount:account];
        [tabBarController setViewControllers:[NSArray arrayWithObject:lvc]];
        [tabBarController setSelectedIndex:0];
        [self presentModalViewController:tabBarController animated:YES];
        [tabBarController release];
        [lvc release];

在tabBarController的文档中,我看到了以下

如果不存在选项卡栏或接收器是模态视图属性为零。

在评论中,它说你正在从LoggedInFeedNavigationController中调用self.tabBarController,我认为它应该可以正常工作。但是,您正在以模式显示选项卡栏,如果文档意味着即使它作为模式视图在UITabBarController中,那也是您的问题。

在我看来,这就像是在你还没有完成选项卡栏控制器时释放它。你想初始化它一次,只有在完成后才释放它,就像在dealloc方法中一样。

Joe完全正确。自定义分段也是如此。(例如:SWRevealViewController等)

这是我根据Joe的回答和苹果公司的文档所做的工作。在YourTabBarViewController.h文件中添加以下内容:

 @property (nonatomic, retain) UITabBarController * myTabBarController;

然后在viewDidLoad中的YourTabBarViewController.m文件中添加以下内容:

self.myTabBarController = self;
self.myTabBarController.delegate = self;

相关内容

最新更新