prepareForSegue中に親View Controllerのタブバー項目を変更することは可能ですか? 基本的に、セグエ時に2つの可能なタブバーアイテムの1つが削除される親コントローラーにロジックを挿入しようとしています。
私は次の行に沿って何かを試しました:
- (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
UI Tab Bar Controller がストーリーボード オブジェクトである iOS 5 の Xcode 4.2 を使用しているため、タブ バーなどへのアウトレットはありません。
前もって感謝します!