以Swift编程方式程序化打开视图控制器

14

我希望能够通过代码在按钮上打开新的UIViewController。我已经在storyboard中创建了控制器,只想链接它,并且不想使用XIB界面或nibName。


答案就在这里: https://dev59.com/-18e5IYBdhLWcg3wssAV - Scott Zhu
如果您的视图控制器没有故事板,如何实现此功能。 - Kartiikeya
3个回答

20

要打开新的视图控制器,您需要在按钮单击事件中编写此行:

self.performSegueWithIdentifier("GoToViewController", sender:self)

要链接到新视图控制器,请按照以下步骤操作:

  • 从storyboard中选择新的视图控制器,并右键单击它。

  • 你会发现出现一个暗灰色弹出窗口(见图片)。

  • 现在在“Presenting Segues”下选择“Present Modally”,并将其拖动到需要打开此视图控制器的视图控制器上进行链接。

  • 你会发现在新的视图控制器下创建了一个新的segue。

  • 现在选择该segue,转到检查器并复制标识符或重命名并复制它。

  • 在上面一行中使用该标识符。

希望它能起作用。

enter image description here


超棒的解决方案。 - Abhishek
如果我按照你的方式打开新的视图控制器,那么之前的视图控制器会从内存中销毁吗?@cyberlobe - roy
1
如果您的视图控制器没有故事板,如何实现此功能。 - Kartiikeya

14
self.navigationController!.pushViewController(self.storyboard!.instantiateViewControllerWithIdentifier("userProfileController") as UIViewController, animated: true)

我想将我的视图控制器添加到导航控制器中,这也起作用了。


如果您的视图控制器没有故事板,如何实现此功能。 - Kartiikeya

1
对于Swift 4.2,请尝试以下代码:

self.navigationController!.pushViewController(self.storyboard!.instantiateViewController(withIdentifier: "inventoryViewController") as UIViewController, animated: true)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接