我正在嘗試使用Xamarin Studio 4.0.12(版本3)爲iOS編寫一個簡單的應用程序。xamarin Pop a DialogViewController阻止下一個推送的視圖顯示
我有一個「家」UIViewController
這是第一個被添加到rootNavigationController
。
主頁上有一個按鈕,用於顯示基於DialogViewController
的「登錄」或「創建帳戶」視圖。這些顯示在呼叫this.NavigationController.PushViewController
響應按下主頁視圖按鈕(所以「this」是主頁實例)。
當用戶關閉登錄對話框時,會回撥回家,並且代碼this.NavigationController.PopViewControllerAnimated
用於從視圖堆棧中刪除對話框。
然後,向this.NavigationController.PushViewController
另一個呼叫被做成顯示可看到一次登錄。
問題是從不顯示詳細視圖的細節。我已經在調試器中通過了並且可以看到NavigationController
以正確的順序具有適當的視圖。
這裏是回調的實際代碼:
private void OnShowSigninScreenClose(string username, string password)
{
try
{
this.NavigationController.PopViewControllerAnimated(true);
ReceiptsScreen receiptsScreen = new ReceiptsScreen();
this.NavigationController.PushViewController (receiptsScreen, true);
}
catch (Exception ex) {
Alert ("CaptionError".Localized(), ex.Message);
}
}
如果我刪除到PopViewControllerAnimated
顯示在屏幕上詳細的電話,但導航欄上有一個按鈕,返回到登錄屏幕。 我真的想用視圖堆棧中的詳細信息屏幕替換登錄屏幕。
任何建議將不勝感激。
感謝您的建議,但是,我也沒有做這項工作。它確實改變了登錄視圖的顯示方式 - 它現在從底部向上滑動(如模態視圖?),但我似乎無法解除它。我在Sign In視圖中添加了一個調用,就在這個回調之前,像這樣:this.RemoveFromparentViewController();但登錄視圖永遠不會消失。 – user2734583
也許真正的答案是,您需要通過PresentViewController呈現您的登錄信息..並保持您的詳細信息屏幕未更新,直到您擁有有效的登錄信息...您真正需要了解的是DismissViewController和PresentViewController ..允許委託{}動作..你可以強制下一個屏幕在用戶完成一個動作後彈出。 –
我不會說這..如果我沒有一個應用程序..與登錄..石油行業應用程序。我強制在應用程序開始註冊..然後我強迫他們給他們的簽名..然後他們在應用程序內免費做他們想要的。通過使用PresentViewController,並保存本地偏好..我可以在啓動時控制用戶體驗。 –