簡體   English   中英

將新的viewcontroller鏈接到Storyboard?

[英]Linking a new viewcontroller to Storyboard?

可能有一個簡單的解決方案,但我無法弄清楚。

我正在使用故事板作為界面。

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

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

我做了什么:

  • 通過文件>新建>新文件創建新的UIViewController子類。
  • 在故事板中拖動一個新的UIViewController
  • 在自定義類選項卡中設置類
  • 拖動UILabel用於測試目的。

無標簽...

拉上一個新的UIViewController,它將作為MainStoryboard上的登錄視圖控制器。 在屬性檢查器中,將標識符更改為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];
}

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

希望這可以幫助。

以上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]; 

我是這個領域的新手。 但是,如果第一個視圖控制器是導航視圖控制器,並且其rootviewcontroller是一個表視圖控制器。 如果要在單擊單元格時按下ViewViewController之類的視圖控制器,並且還想使用導航欄返回到表視圖。 我建議這樣:

-(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時,它的視圖不是故事板中的視圖。 如果有人知道原因,請告訴我! 謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM