如何在情节提要中创建 UIViewController 布局,然后在代码中使用它?

Posted

技术标签:

【中文标题】如何在情节提要中创建 UIViewController 布局,然后在代码中使用它?【英文标题】:How to create a UIViewController layout in storyboard and then use it in code? 【发布时间】: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 文件,我该怎么做呢?

【问题讨论】:

【参考方案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】:

在您的故事板中:

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

【讨论】:

【参考方案3】:

对于 Swift 4

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

【讨论】:

以上是关于如何在情节提要中创建 UIViewController 布局,然后在代码中使用它?的主要内容,如果未能解决你的问题,请参考以下文章

如何在情节提要中创建一个按钮以启动在 xcode swift 中使用 spritekit 创建的游戏

在swift5中按下特定按钮时如何使用代码呈现tabBarViewController(在情节提要中创建)?

在 Xcode 4.3 中创建没有情节提要的项目

是否可以在不使用情节提要的情况下在 xib 文件中创建原型内容 UITableview?

Xcode 6.3 错误 - 无法在情节提要中创建 IBOutlet 引用或使用自定义 UIViewController

如何使用 Xcode 4.3 在情节提要中实现 UIModalTransitionStylePartialCurl?