在prepareForSegue期间是否可以修改父视图控制器中的标签栏项目?基本上,我试图在父控制器中插入逻辑,其中两个可能的选项卡栏项目之一可能会在 segue 时被删除。
我已经尝试了一些类似的东西:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"identifierOfInterest"]) {
UITabBarController *tabBarController = (UITabBarController *)segue.destinationViewController;
// Attempt 1
NSMutableArray *items = [[tabBarController.tabBar items] mutableCopy];
[items removeObjectAtIndex:1];
[tabBarController.tabBar setItems:items animated:YES];
// Attempt 2
NSMutableArray *items = [[tabBarController viewControllers] mutableCopy];
[items removeObjectAtIndex:1];
[tabBarController setViewControllers:items];
}
}
不幸的是,这两条消息都会导致应用程序崩溃,并出现以下错误:
尝试1:
Directly modifying a tab bar managed by a tab bar controller is not allowed.
尝试2:
[UITabBarItem parentViewController]: unrecognized selector sent to instance
我正在使用 Xcode 4.2、iOS 5 和 UI 标签栏控制器作为情节提要对象,因此标签栏或任何东西都没有出口。
提前致谢!