2012-05-01 13 views
0

prepareForSegue中に親ビューコントローラのタブバー項目を変更することはできますか?基本的には、親コントローラにロジックを挿入しようとしていますが、2つの可能なタブバー項目の1つがセグの時に削除される可能性があります。親ビューコントローラ内のタブバー項目を変更する

試み1:

Directly modifying a tab bar managed by a tab bar controller is not allowed. 

試み2:残念ながら、両方のメッセージには、次のエラーが発生したアプリケーションをクラッシュさ

- (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]; 
    } 
} 

:私はの線に沿って何かをしようとした

[UITabBarItem parentViewController]: unrecognized selector sent to instance 

私はUIバーバーコントローラがストーリーボードオブジェクトであるため、Xcode 4.2、iOS 5を使用しているため、タブバーなどのアウトレットはありません。

ありがとうございます!

答えて

0

通常、TabBarアプリケーションでは、AppDelegateはタブバーコントローラーを所有しています(または参照しています)。これは「メイン」ビューコントローラーです。タブ・バー・ビュー・コントローラーには表示できません。少なくとも、表示しないでください。アプリケーションのタブバーコントローラに何らかのアクションを実行させる必要がある場合は、作業を実行するために、タブバーコントローラへの参照を持つApp Delegateインスタンスにメッセージを送信します。

すなわち

​​
関連する問題