2015-04-06 53 views
0

我正在使用以下代碼以模態方式啓動視圖控制器。這個視圖控制器不是從頭開始創建的。相反,我在故事板中創建並設計了它,給它一個名稱,將其嵌入到導航控制器中,以便它具有導航欄並創建取消和完成按鈕,併爲其指定標題並在下面的代碼中啓動它。使用代碼啓動視圖控制器時,標題和導航欄消失

問題是,儘管屏幕的大部分功能都顯示出來,例如標籤和圖像,但您可以在故事板中看到的標題和導航欄消失。有沒有人遇到過這個問題,並對其進行修復?

我的代碼啓動在故事板中創建的VC。

- (void) editView:(id) sender 
{ 
    NSLog(@"launch button pressed"); 
    UIStoryboard *storyBoard = self.storyboard; 
    IDEditVC *editVC = 
    [storyBoard instantiateViewControllerWithIdentifier:@"editvc"]; 
editVC.item = _item; 
[self presentModalViewController:editVC animated:YES]; 
    } 
+0

您需要實例和現在的導航控制器,不IDEditVC。 – rdelmar

+0

您鏈接的問題沒有被接受的答案。如果您認爲這是重複的,則必須展示實際回答的問題,而不是回答不適用於海報的問題。 – user1904273

+0

只是因爲OP沒有正確實施它。這是做到這一點的正確方法。 – rdelmar

回答

1

我覺得發生了什麼事是,既然你是直接通過名稱實例化視圖控制器,它變得只是從故事板而不是嵌入導航控制器。

試試這個:

  1. 在你的故事板,使導航控制器的初始/根視圖控制器故事板
  2. 不是按名稱實例化的,使用UIStoryboard的instantiateInitialViewController方法。

編輯: 根據您在下面的意見,你可能想試試這個:

- (void) editView:(id) sender 
{ 
    NSLog(@"launch button pressed"); 
    UIStoryboard *storyBoard = self.storyboard; 
    IDEditVC *editVC = 
    [storyBoard instantiateViewControllerWithIdentifier:@"editvc"]; 
    editVC.item = _item; 

    UINavigationController *nav = [UINavigationController alloc] initWithRootViewController: IDEditVC]; 
    // Do whatever setup you want to here for your title bar, etc 
    [self presentModalViewController:nav animated:YES]; 
} 
+0

這個應用程序有很多屏幕和一個完全不同的控制器是初始視圖控制器。 – user1904273

+0

然後打破你模態展示到它自己的故事板的視圖控制器,或者在代碼中實例化一個UINavigationController,並在其中嵌入你的視圖控制器 – MahatmaManic

+0

我如何實例化導航控制器而不是常規的vc?只要給它一個名字並替換名字? – user1904273

相關問題