【问题标题】:How to create a UIViewController layout in storyboard and then use it in code?如何在情节提要中创建 UIViewController 布局,然后在代码中使用它?
【发布时间】:2011-12-28 00:20:20
【问题描述】:

我的 iOS 5 应用程序中有一个 Storyboard。

在那里我创建了许多屏幕,并且效果很好。

但是,我在代码中创建了一个视图控制器,不是作为 UI 操作的结果,而是在处理数据结束时。我想展示这个视图控制器,作为一个 modalViewController,但也让它在故事板编辑器中设计。

有可能吗?使用笔尖我是这样做的:

ResultsController *rc = [[ResultsController alloc] initWithNibName:@"ResultsController"
                                                            bundle:nil];
[self.navigationController presentModalViewController:rc animated:YES];
[rc release];

现在我真的没有 nib 文件,我该怎么做呢?

【问题讨论】:

    标签: iphone ios5 modalviewcontroller uistoryboard


    【解决方案1】:

    看看 UIStoryboard 类。有一个 instantiateViewControllerWithIdentifier 方法。因此,您需要在 Storyboard Editor 中为 ResultsController ViewController 设置 Identfier。

    你可以这样做

    UIViewController *viewController = 
       [[UIStoryboard storyboardWithName:@"MainStoryboard" 
                                  bundle:NULL] instantiateViewControllerWithIdentifier:@"ResultsController"];
    
    [self presentModalViewController:viewController animated:NO];
    

    【讨论】:

    • 谢谢!而且......有没有办法在情节提要上直接设置一个按钮来dismissModalViewController?没有将它附加到只调用此dismiss...方法的代码中的方法?
    • 我不认为它没有代码就可以工作,因为故事板中没有与任何其他 ViewController 的连接。
    【解决方案2】:

    在您的故事板中:

    1. 添加通用 UIViewController。
    2. 使用 Identity Inspector,将其自定义类设置为您的 ResultsController。
    3. 创建从源视图控制器到 ResultsController 的模态转场

    【讨论】:

      【解决方案3】:

      对于 Swift 4

      let viewController = UIStoryboard.init(name: "MainStoryboard", bundle: nil).instantiateViewController(withIdentifier: "ResultsController")
      self.present(viewController, animated: true, completion: nil)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-17
        • 2015-11-17
        • 1970-01-01
        • 2012-10-25
        • 1970-01-01
        • 2019-12-17
        • 1970-01-01
        相关资源
        最近更新 更多