1

我的應用程序中有一個替代流程。該流程開始於我的firstViewController,然後在此查看呼叫我secondViewController這樣的:如何將UINavigationController添加到呈現爲Modal的UIViewController中

- (IBAction)PressButton:(id)sender { 

    SecondViewController *second = [[SecondViewController alloc] init]; 
    second.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    UINavigationController *nav = self.navigationController; 
    [nav presentViewController:second animated:YES completion:nil];        
} 

在我secondViewController我希望把我的thirdViewController。但它不工作我嘗試這樣的方式:

- (IBAction)pressButton:(id)sender { 

    ThirdViewController *tvc = [[ThirdViewController alloc] init]; 
    UINavigationController *nav = self.navigationController; 
    [nav pushViewController:tvc animated:YES]; 

}

當我按下的secondViewController沒有任何按鈕發生。

我在做什麼錯了?

我使用:

  • OSX 10.8.2
  • 的Xcode 4.6
  • 的iOS 6.1

回答

10

需要出示導航控制器模態,和具有第二視圖,該導航控制器的根。以及從擁有視圖調用presentViewController而不是其父導航控制器。

- (IBAction)PressButton:(id)sender { 
     SecondViewController *second = [[SecondViewController alloc] init]; 
     second.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
     UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:second]; 
     [self presentViewController:navigationController animated:YES completion:nil];  
    } 
+0

工程就像一個魅力!謝謝 ! – Sebastian 2013-02-25 04:42:19

2

而是呈現只在第二個視圖控制器,一定要提出一個附加導航控制器。

SecondViewController *secondViewController = [[SecondViewController alloc] init]; 

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:secondViewController]; 
[[self navigationController] presentViewController:navigationController animated:YES completion:nil]; 
+0

嗨亞倫,謝謝你的回答。不幸的是,當我這樣做時,應用程序崩潰。 === >>>原因:'應用程序試圖以模態方式呈現活動控制器。' – Sebastian 2013-02-25 01:40:48

+0

嘗試將我的示例中的navigationController的名稱更改爲「secondNavigationController」或沿着這些行的內容。現在你要展示一個視圖控制器,或者你的情況下是一個導航控制器,兩次。 – 2013-02-25 03:17:26

0

如果您使用的故事板只需要點擊源視圖廈門國際銀行,按Ctrl +拖動到目標(創建Segue公司),從彈出menu.Click選擇模式新創建的連接上。然後在源視圖控制器中爲其添加一個名稱[self performSegueWithIdentifier:@"Segue Name" sender:self];

0

如果您試圖獲取按鈕以模式方式指引您訪問其他頁面,則可以進入故事板或xib文件。控制點擊從該按鈕到你想要去的視圖控制器。然後彈出菜單會給你選擇你想要使用什麼類型的插座。希望這可以幫助

相關問題