如果没有用户登录,我想向用户显示模态视图控制器。这是我的方法实现:
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,但因为它不是根视图控制器,所以这仍然不起作用。
那么如何将根视图控制器正确设置为模态视图控制器,然后我可以以模态方式解除。
答案 0 :(得分:0)
你不能。根视图控制器应被视为应用程序的可视化表示。要使这个模态意味着你的应用程序本身是模态的,显然不是这种情况。
您真正希望能够做的是将模态视图控制器作为用户看到的第一件事。这与根视图控制器不同。
将根视图控制器设置为常规视图控制器(或导航控制器),然后将模态视图控制器推到其上。当模态视图控制器被关闭时,您的应用程序可能会开始。