【问题标题】:IOS Swift Open View Controller Programmatically [duplicate]IOS Swift以编程方式打开视图控制器[重复]
【发布时间】: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
  • 这是重复的吗?我认为我的情况与链接的问题完全不同

标签: ios swift storyboard appdelegate


【解决方案1】:
let storyboard = UIStoryboard(name: "main", bundle: nil)
let articleController =  storyboard.instantiateViewController(withIdentifier: "ArticleViewController")  

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

【讨论】:

  • 这会创建故事板的新实例吗?
  • 是的。然后,您可以使用 presentViewController 呈现 articleController 或将其推送到导航控制器。
  • @Nitish 如果我在情节提要中没有任何视图控制器,但我正在以编程方式执行所有操作,那么我应该怎么做才能调用或声明视图控制器的 id
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-15
  • 2016-08-19
  • 2011-05-09
  • 1970-01-01
  • 2012-07-22
  • 2020-12-05
  • 1970-01-01
相关资源
最近更新 更多