2014-10-02 32 views
0

我新的iOS開發和Xcode和我試圖找出如何實現以下邏輯:LoginViewController - > OtherviewController雙向Segue公司

1)用戶啓動應用程序 - 用戶被定向到具有LoginViewController登錄表單

2)在成功的用戶登錄 - 進入下一個視圖控制器 - 姑且稱之爲LoginViewController

如何編程做,在對LoginViewController例如視圖中的登錄按鈕的操作邏輯

@IBAction func loginButtonPressed(button: UIButton) { 
    //do login logic 

    //what to put here to segue to OtherViewController 
} 

而且一旦用戶在OtherViewController中,他們的認證令牌可能會到期。如果發生這種情況,我需要繼續回到LoginViewController。我來自Android背景,你可以使用Intents來實現這種事情 - iOS中的等價物是什麼?

在Swift中的答案是首選,因爲我對此比較熟悉,但我在破譯Objective C代碼時也很體面。

作爲一個方面說明 - 我應該控制像這樣的代碼段,還是應該使用故事板?我嘗試在故事板中創建segues,但我不明白如何將這些代碼綁定到應用程序代碼。

回答

1

一種方式:

self.performSegueWithIdentifier("name2", sender: self) 

作爲一個例子:

@IBAction func button(sender: AnyObject) { 

     self.performSegueWithIdentifier("newView", sender: self) 
    } 

在這裏,我在故事板創建的模態從賽格瑞到viewController1 ViewController2。我通過按住Ctrl鍵點擊視圖頂部的黃色ViewController圖標並將藍線拖到第二個視圖。然後釋放。在彈出菜單中選擇模態segue。然後在右側的實用程序面板中 - 突出顯示故事板中的segue後,單擊屬性檢查器併爲該標識符命名。然後將該名稱粘貼到代碼示例中,我有「newView」。

+0

這是否意味着我需要創建一個繼續在故事板?如果是這樣,什麼類型的賽格,那些似乎有意義的將是'show'或'showDetail' – thatidiotguy 2014-10-02 16:12:34

+0

是的,那是最好的方法。你可以創建一個模態賽格。然後給它一個標識符,並把它放在我給你的代碼中。讓我知道你是否需要鏈接到或粘貼屏幕截圖。 – 2014-10-02 16:17:30

+0

我認爲模態賽格是爲了搭建模態窗口?是否有某個資源解釋了所有這些不同的階段類型的作用以及它們應該用於什麼? – thatidiotguy 2014-10-02 16:21:18

1

其實你可以從故事板初始化你下一個控制器:

UIStoryboard * storyboard = self.storyboard; 

OtherViewController * otherVC = [storyboard instantiateViewControllerWithIdentifier: @ "xxx * Name Desire"]; 

如果您使用的導航控制器:

[self.navigationController pushViewController: otherVC animated: YES]; 

否則:

[self presentViewController:otherVC animated:YES completion:nil];