0

UIsegmentedControllerでpushViewControllerを使用して、他のビューとxibにプッシュしたいと思います。 xcode 4でこれを行うことはできますか?私ができるなら、私を助けてくれますか?UISegmentedControlでpushViewControllerを使用できますか?

私が試したコードですが、動作しません。

-(IBAction) segmentedControlIndexChanged:(id)sender 
{ 

    if ([sender selectedSegmentIndex] == 0) 
    { 
     BDshelveController *shelve_page = [[BDshelveController alloc] initWithNibName: @"BDshelveController" bundle:nil]; 

    } 
    else if([sender selectedSegmentIndex] == 2) 
    { 

     BDlibraryController *lib_page = [[BDlibraryController alloc] initWithNibName:@"BDlibraryController" bundle:nil]; 
     [self.navigationController pushViewController:lib_page animated:YES]; 
    } 

} 
+0

** **どのように動作しないのですか? – Vladimir

+0

それはBDlibraryControllerビューにプッシュしていませんでした:( – crazyoxygen

答えて

0

はい、あなたは、これらのは、あなたのコード内でsegmentedIndex = 1を逃したあなたは

  • をチェックすることができ、物事あることができます。選択したセグメント= 0

  • それともself.NavigatonControllerはあなたのセグメント化されたコントロールは、あなたの行動

  • にとvalueChange接続されていない

  • nilである可能性が高いとき

  • あなたはpushViewControllerを呼び出すために逃しました

self.navigationControllerがnilの場合、アプリの初期化方法に依存します。アプリがナビゲーションバーで駆動される場合、AppDelegateのこのコードはissを解決する必要がありますue:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:yourRootViewController]; // <-- depends if you have storyboards, xib etc...you should this already initialized 
    [self.window addSubview:navController.view]; 
    [navController release]; // <-- depends if you have ARC 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

そうでなければ、自分自身をルートコントローラとして与えて初期化することができます。

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self]; 
+0

私はそれのためにcode.sryをすべてコピーしていませんでしたが、今私はself.NavigationControllerが(null)であることを知っています。 ]; 最初 ?? – crazyoxygen

関連する問題