2011-11-02 42 views
28

可能有一個簡單的解決方案,但我無法弄清楚。鏈接一個新的viewcontroller到故事板?

我正在使用界面的故事板。

我從一個標籤欄控制器開始,但在允許用戶使用該應用程序之前,用戶必須通過在開始時通過模態推送的loginview來驗證自己。

我想在同一個故事板上配置loginview,但我無法縫製出如何鏈接視圖控制器在故事板和我的代碼。

我做了什麼:

  • 創建一個新的UIViewController子類低谷文件>新建>新建文件。
  • 將在故事板
  • 設置類的自定義類標籤
  • 一個新的UIViewController拖動一個UILabel測試的目的。
  • 運行

無標籤......在一個新的UIViewController將充當登錄視圖控制器到MainStoryboard

回答

40

拉。在屬性檢查器中將標識符更改爲LoginViewController(或其他適當的)。然後添加

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"]; 
    [vc setModalPresentationStyle:UIModalPresentationFullScreen]; 

    [self presentModalViewController:vc animated:YES]; 
} 

到第一個視圖控制器和登錄屏幕將從故事板加載並呈現。

希望這會有所幫助。

+0

不,那不是我的意思。我有.m和.h文件,我不需要.xib文件,但在主要故事板中配置視圖。 – Justin

+0

我已經解釋瞭如何在主Storyboard內創建登錄屏幕,所以你不需要一個xib。 –

+0

但這不是我想要的。例如,當您有一個動態表視圖時,您想在按下單元格時推送視圖。但你怎麼能用故事板做到這一點。 – Justin

6

上面的Scott Sherwood的回答是我在搜索後發現的最正確答案。儘管按照新的SDK(6.1)進行了非常輕微的更改,但presentModalViewController顯示已棄用。

這是對上述答案的非常小的改變。

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil]; 
    HomeViewController * hvc = [sb instantiateViewControllerWithIdentifier:@"LoginView"]; 
    [hvc setModalPresentationStyle:UIModalPresentationFullScreen]; 
    [self presentViewController:hvc animated:YES completion:nil]; 
+0

感謝您的分享! – Justin

1

我是這個領域的新人。但是,如果第一個視圖控制器是一個導航視圖控制器,並且它的rootviewcontroller是一個表視圖控制器。如果在單擊單元格時想要像LoginViewController一樣推送視圖控制器,並且您還想使用導航欄返回到表視圖。我推薦這種方式:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    UIViewController *controller = [sb instantiateViewControllerWithIdentifier:@"LoginViewController"]; 
    [self.navigationController pushViewController:controller animated:YES]; 
} 

這樣,你可以有導航。

順便說一句,我不知道爲什麼你問這個問題會出現。我猜想在代碼中創建loginviewcontroller時,它的視圖不是故事板中的視圖。如果有人知道原因,請告訴我!謝謝!

相關問題