我创建了一个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;