【问题标题】:how do i call SetRootViewController from a view controller using swift?如何使用 swift 从视图控制器调用 SetRootViewController?
【发布时间】:2014-10-12 19:19:14
【问题描述】:

我正在尝试从 UIViewController 而不是应用委托中快速使用 setRootViewController。

我发现了一些关于堆栈溢出的问题,但他们在任何地方都解释了如何从应用程序委托中执行此操作。但是,我想从 UIViewController 执行此操作并将 UITabBarController 设置为 rootViewController

这就是我在目标 c 中的做法

UITabBarController *main = [self.storyboard instantiateViewControllerWithIdentifier:@"main"];

[[[[UIApplication sharedApplication] delegate] window] setRootViewController:main];

我想在 swift 中做同样的事情。有什么方法可以快速完成还是我需要使用 segue?

【问题讨论】:

    标签: ios objective-c swift ios8


    【解决方案1】:

    我使用以下代码行:

    UIApplication.sharedApplication().delegate?.window??.rootViewController = mainViewController
    

    【讨论】:

    • 谢谢伙计,它似乎工作。但是你能解释一下为什么你在窗口后使用了双问号。 “??” ?谢谢
    • 如果你看UIApplication协议中的window声明,你会看到它被声明为optional:optional var window: UIWindow? { get set },这意味着该协议的采用者不需要实现该属性。第一个 ? 用于声明为可选的属性,第二个用于属性本身是可选的 - 有点令人困惑,也许这可以澄清:Optional Protocol Requirements
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    相关资源
    最近更新 更多