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
。
我想做的是,例如通过UIApplicationOpenURLOptionsKey
或launchedwithRemoteNotification
打开应用程序,我会以编程方式打开ItemViewController
。
我可以通过在
中显示viewcontroller
来做到这一点
let currentView = self.window?.rootViewController?.presentedViewController
然后展示它的视图。但是,我认为第一次打开应用程序时presentedViewController
是nil
。我可以解决一些问题,但有没有更合适或标准的方法来处理这个问题?
谢谢!
【问题讨论】:
你在用故事板吗? 是的,我正在使用故事板 @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约束