更改呈现的第一个 viewController(主界面)

Posted

技术标签:

【中文标题】更改呈现的第一个 viewController(主界面)【英文标题】:Change first viewController presented (main interface) 【发布时间】:2019-10-11 20:21:28 【问题描述】:

您好,我已经为我的应用程序制作了一个页面控制器。 如果设备上没有任何“用户”核心数据对象,此页面控制器将出现在应用启动时。

所以我想做的是: 应用启动时,执行核心数据请求,返回数组中的所有“用户”对象。 (这部分还可以) 如果数组为空,则 VC 呈现的是 pageController,否则,它的呈现是正常的。

pageController 和另一个控制器位于不同的故事板上。 我看到我们可以改变app参数中的第一个故事板,那个参数叫做主界面。 实际上主界面是普通的 VC,那么当我的条件为真时,如何在我的 didFinishLaunchingWithOptions() 中以编程方式呈现页面控制器?

【问题讨论】:

【参考方案1】:

内部didFinishLaunchingWithOptions

// query coredata 

if arr.isEmpty  
  let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "pageID") as! PageController
  self.window?.rootViewController = viewController

else 
  let otherController = UIStoryboard(name: "Other", bundle: nil).instantiateViewController(withIdentifier: "otherID") as! OtherController 
  self.window?.rootViewController = otherController 

【讨论】:

以上是关于更改呈现的第一个 viewController(主界面)的主要内容,如果未能解决你的问题,请参考以下文章

将 ViewController 呈现为弹出框

关闭一个 ViewController 并呈现另一个 ViewControlloer - IOS - Swift 3

CALayer 旋转动画不适用于呈现的 ViewController

如何呈现嵌入在 UITabBarController 和 UINavigationBarController 中的 ViewController

我应该在哪里创建和呈现整个 iPhone 应用程序中使用的模态 ViewController

我可以更改调用 presentViewController 的 ViewController 吗?