2013-01-03 26 views
2

我只是想在故事板上提供的模態控制器上添加導航欄(有一些導航欄按鈕)。ios - 導航欄上的故事板提供的模式控制器

編程與XIBs,它看起來就像是:

SDMapController *mapController = [[SDMapController alloc] initWithNibName:@"SDMapController" bundle:nil]; 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:mapController]; 

[self presentModalViewController:navigationController animated:YES]; 

但我不知道如何與故事板處理。我想我必須在-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender方法上實現一些代碼,但由於segue對象的destinationController屬性是隻讀的,我不知道如何執行此操作。

有什麼想法?

回答

3

只有當您想將某些數據傳遞給您呈現的視圖控制器時,您必須執行準備for segue。否則,你可以把它留空。 View Controller的呈現來自Interface Builder。你用它的根視圖控制器添加一個導航控制器,並嚮導航控制器發出一個segue(ctrl + drag)。將segue類型設置爲模態,併爲其指定一個ID。你可以通過調用[self perforSegueWithIdentiefier:@"MySegueID"];來從代碼中觸發這個segue。如果您從按鈕或表格視圖單元中拖拉了Segue,則在您輕擊它時將自動觸發它,而不調用此方法。正如我所說的,在prepareForSegue方法中,segue.destinationViewController將成爲所呈現的導航控制器。如果您需要並將一些數據傳遞給它,您可以訪問它的topViewController

+0

很好。我試圖嵌入導航控制器到第一個控制器,但我不知道爲什麼我沒有考慮將它嵌入到所呈現的控制器中......我有一個相關的問題:這是一個正常的情況有2個導航控制器我的故事板中的同一個「線」? NavController - > FirstVC - (模態) - > NavController - > SecondVC。或者,這是更好的放置按鈕等工具欄上,例如,而不是將navcontroller添加到我提交的視圖? – Yaman

+1

當您以模態方式呈現某些東西時,可以在模式中使用新的導航控制器。它與沒有故事板一樣,你創建一個導航控制器並以模態方式呈現。就像你問題中的代碼一樣。 – Levi

+0

好的,thx爲您的幫助Levi;) – Yaman

相關問題