【发布时间】:2015-02-10 16:28:20
【问题描述】:
如果没有用户登录,我想向用户显示模式视图控制器。这是我的方法实现:
func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool
{
// Notifications
//
// User
//
NSNotificationCenter.defaultCenter().addObserver(self, selector: "noCurrentUser:", name: UserCurrentUserNotSetNotificationName, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "currentUserDidChange:", name: UserCurrentUserDidChangeNotificationName, object: nil)
// Root window
//
if managedObjectContext != nil && User.currentUser(managedObjectContext!) == nil
{
let storyboard = UIStoryboard(name: "Main", bundle: nil)
if let logInViewController = storyboard.instantiateViewControllerWithIdentifier("Log In View Controller") as? LogInViewController
{
window?.rootViewController?.presentViewController(logInViewController, animated: false, completion: nil)
}
}
return true
}
我包含通知是因为目前,noCurrentUser: 方法以模态和动画方式显示我的登录视图控制器。这很好用,除非当应用启动时,用户在发送通知之前会看到应用(根视图控制器)的闪烁,并在视图控制器中显示模式日志。
我尝试在呈现时将模态动画选项设置为 false,但因为它不是根视图控制器,所以这仍然不起作用。
那么我如何正确地将根视图控制器设置为模态视图控制器,然后我可以模态地关闭它。
【问题讨论】:
-
我在另一个问题中提供了一个类似问题的答案:stackoverflow.com/q/26355847/1652710 当然,这是在 Obj-C 中,但希望您可以将它转化为在 Swift 中解决您的问题的有效解决方案。
标签: ios swift modalviewcontroller