ios - 如何将 instantiateViewControllerWithIdentifier 设置为全局变量?

标签 ios swift uiviewcontroller

我有两个不同的入口点:

let entryPoint: UITabBarController = mainStoryboard.instantiateViewControllerWithIdentifier("TabBarController") as! UITabBarController

let entryPoint: WelcomeController = mainStoryboard.instantiateViewControllerWithIdentifier("WelcomeController") as! WelcomeController

如何将 instantiateViewControllerWithIdentifier 设置为此全局 entryPoint var?这对我来说很困难,因为它们有两种不同的 ViewController 类型:UITabBarControllerViewController

所以,我想要像

var entryPoint?

以后

entryPoint: UITabBarController = mainStoryboard.instantiateViewControllerWithIdentifier("TabBarController") as! UITabBarController

entryPoint: WelcomeController = mainStoryboard.instantiateViewControllerWithIdentifier("WelcomeController") as! WelcomeController

最佳答案

解决方案将取决于您以后打算如何使用 entryPoint。

如果您没有任何特定于类的用途或不介意一些类型转换,您始终可以将入口点声明为 UIViewController:

var entryPoint:UIViewController?

swift 将接受这两个分配,因为所有类都是 UIViewController 的子类。

如果以后要使用特定的属性,则需要检查变量的实际类

例如:

if let tabBarEntry = entryPoint as? UITabBarController
{
   tabBarEntry.selectedIndex = 1
} 

关于ios - 如何将 instantiateViewControllerWithIdentifier 设置为全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34783769/

相关文章:

ios - 无法启动模拟器,launchd 无法响应 Xcode 10.0

swift - 构建 Vapor 3 框架时出现 Xcode 错误

ios - 在 SpriteKit/Swift 中显示 GADBannerView 的最佳方式

ios - AppDelegate.Swift 上的线程处理

ios - 当另一个 viewController 隐藏状态栏时,UINavigationBar 在状态栏下方移动

ios - 我喜欢向 UIPopoverController 添加标题和按钮

iphone - 实时 GKMatch 断开连接问题

ios - 在 Swift 中命名或标记 UITextViews?

ios - 通过 TableView ViewForSectionHeader 打洞并访问下面的 View

ios - 呈现 UIViewController View 的多种方式