IOS Swift以编程方式打开视图控制器[重复]

Posted

技术标签:

【中文标题】IOS Swift以编程方式打开视图控制器[重复]【英文标题】:IOS Swift Open View Controller Programmatically [duplicate] 【发布时间】:2018-03-22 05:42:17 【问题描述】:

您能帮我以编程方式启动 ViewControllers 的最佳/正确方法是什么吗?

例如,

我有一个LoginViewController、一个ListViewController 和一个ItemViewController

LoginViewController 首先启动,然后通过 API 异步验证令牌/帐户。

验证后会转到ListViewController

我想做的是,例如通过UIApplicationOpenURLOptionsKeylaunchedwithRemoteNotification打开应用程序,我会以编程方式打开ItemViewController

我可以通过在

中显示 viewcontroller 来做到这一点
let currentView = self.window?.rootViewController?.presentedViewController

然后展示它的视图。但是,我认为第一次打开应用程序时presentedViewControllernil。我可以解决一些问题,但有没有更合适或标准的方法来处理这个问题?

谢谢!

【问题讨论】:

你在用故事板吗? 是的,我正在使用故事板 @jaxx05,是否有任何控制器出现在 self.window 上?.rootViewController ? @Rohi rootViewController 是 LoginViewController 这是重复的吗?我认为我的情况与链接的问题完全不同 【参考方案1】:
let storyboard = UIStoryboard(name: "main", bundle: nil)
let articleController =  storyboard.instantiateViewController(withIdentifier: "ArticleViewController")  

这就是设置视图控制器标识符的方法:

【讨论】:

这会创建故事板的新实例吗? 是的。然后,您可以使用 presentViewController 呈现 articleController 或将其推送到导航控制器。 @Nitish 如果我在情节提要中没有任何视图控制器,但我正在以编程方式执行所有操作,那么我应该怎么做才能调用或声明视图控制器的 id

以上是关于IOS Swift以编程方式打开视图控制器[重复]的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift 从推送通知以编程方式导航到某些 ViewController

Swift 从按钮内部、弹出框和单元格以编程方式在地图顶部打开一个新的视图控制器

Swift iOS以编程方式在导航栏下方设置scrollView约束

Swift - 以编程方式创建视图问题,无法找到存储的属性

在 Swift 中单击以编程方式切换到 TableViewCell 上的导航视图

无法从 Objective-C 视图控制器访问 Swift var - iOS