2015-09-25 2 views
0

Я работаю с Xcode Swift 7 и 2. Я хочу знать, как выполнить действие перед представлением ViewDidLoad моего первоначального представления. На самом деле я хотел бы изменить начальный вид на основе параметра (если я вошел в систему или нет) ... Должны ли мы сделать это в AppDelegate? СпасибоИзменить начальный вид перед представлениемDidLoad Swift

+1

Вы можете добавить свой код в метод 'didFinishLaunchingWithOptions' в' AppDelegate' –

+0

И изменить исходный вид? Кажется, я не могу изменить с идентификатором контроллера ... Это в StorageId нужно идентификатор? –

+0

Итак, вы хотите инициировать определенный вид из appdelegate? –

ответ

1

Таким образом, вы можете инициировать конкретное ViewController из AppDelegate:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 

    let storyboard = UIStoryboard(name: "Main", bundle: nil) 

    let initialViewController = storyboard.instantiateViewControllerWithIdentifier("yourID") 

    self.window?.rootViewController = initialViewController 
    self.window?.makeKeyAndVisible() 

    return true 
} 

Назначаете раскадровку ID так:

Нажмите на раскадровке затем перейти к идентичности инспектору по правой стороне и дать раскадровка идентификатор, как показано на рисунке ниже:

enter image description here

+0

Да, но он возвращает «NSExeption, нет контроллера с идентификатором« MyId »« –

+0

да, потому что вы даете неверный идентификатор для раскадровки. –

+0

В поле необходимо указать StoryboardId ID? а затем установите флажок в поле ниже. –

0
let mainStorybord : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
         
    Bool isAlreadyLogin = <...code for to check for already logged in or not...> 
        if  isAlreadyLogin 
        { 
    var homeVC = storyboard.instantiateViewControllerWithIdentifier("<homeVC>") as! UIViewController 
    // HERE <homeVC> will be your identifier for your sugue in storyboard for initial view after login. 
            let nav : UINavigationController = UINavigationController(rootViewController: homeVc) 
            self.window?.rootViewController = nav 
        } 
        else 
        { 
    var loginVC = storyboard.instantiateViewControllerWithIdentifier("<loginVC>") as! UIViewController 
    // HERE <loginVC> will be your identifier for your sugue in storyboard for login view 

            let nav : NavigationViewController = UINavigationController(rootViewController: loginVC) 
            self.window?.rootViewController = nav 
        } 
    self.window?.makeKeyAndVisible()