2012-06-14 26 views
0

我有一個單視圖應用程序,它接受用戶名和密碼並使用服務器驗證它。證書驗證通過後,我希望應用程序轉到其他視圖,其中會顯示其他一些數據。Cocoa-Touch:如何在輸入驗證後更改視圖?

我只知道如何切換視圖時,我有一個按鈕(即,通過將其拖動到輔助視圖,並選擇我想使用什麼樣的segue)。但是,如何在證書驗證之後更改視圖?

爲了給你一個更清晰的概念,這是我目前的應用程序如何運行:

文本被輸入到兩個字段。按下「登錄」按鈕(或鍵盤上的「完成」按鈕)會調用驗證輸入憑據的方法。如果憑據是有效的,那麼添加應該繼續。否則,它會彈出一條通知,說明憑據無效。

我已完成所有工作。在驗證給定的憑據後,我只需要知道如何在驗證方法中更改視圖。

回答

1

有很多方法可以實現這一點;您選擇的技術應該取決於您是否希望驗證視圖控制器在您繼續之後「保持在周圍」。如果你想讓它堅持下去,實際上可以按照你的故事板從按鈕中延伸出來的方式進行。

在故事板中,從第一個(驗證)視圖控制器按住ctrl拖動到第二個以創建segue。選擇segue並使用檢查器面板給它一個標識符。然後在驗證視圖控制器你的代碼,你可以做這樣的事情:

[self performSegueWithIdentifier:@"validCredentialsSegue" sender:self]; 

如果你想始發視圖控制器「走開」,你必須尋找到你的應用程序流程的架構。也許你想要一個主視圖控制器在憑證的「上面」,通過成功登錄的委託進行通知,並決定要做什麼(也許它的視圖是目標視圖......)。否則,我認爲在過去,人們一直在設置窗口的rootViewController屬性。不過,我相信有更好的技術。

+0

感謝您的好,簡潔的答案。 – Nikhil

+0

另外,我對標識符感到困惑 - 那個角色究竟是什麼? – Nikhil

+0

從任何給定的視圖控制器到故事板中的任何其他視圖控制器都可能有多個segas。在Xcode中,當您編輯故事板並選擇一個segue時,'utilities'區域的'attributes inspector'面板(通常位於最右側)允許您爲選定的segue提供一個標識符。它完全是任意的,完全取決於你使用什麼作爲標識符,但是無論你在故事板中使用什麼,都必須與你在視圖控制器代碼中使用的內容相匹配,以便運行時找到正確的繼續觸發。 –