2013-08-31 26 views
1

我正在嘗試使用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顯示在屏幕上詳細的電話,但導航欄上有一個按鈕,返回到登錄屏幕。 我真的想用視圖堆棧中的詳細信息屏幕替換登錄屏幕。

任何建議將不勝感激。

回答

0

用PresentViewController代替PushViewController。

this.PresentViewController(receiptsScreen,true, null); 
+0

感謝您的建議,但是,我也沒有做這項工作。它確實改變了登錄視圖的顯示方式 - 它現在從底部向上滑動(如模態視圖?),但我似乎無法解除它。我在Sign In視圖中添加了一個調用,就在這個回調之前,像這樣:this.RemoveFromparentViewController();但登錄視圖永遠不會消失。 – user2734583

+0

也許真正的答案是,您需要通過PresentViewController呈現您的登錄信息..並保持您的詳細信息屏幕未更新,直到您擁有有效的登錄信息...您真正需要了解的是DismissViewController和PresentViewController ..允許委託{}動作..你可以強制下一個屏幕在用戶完成一個動作後彈出。 –

+1

我不會說這..如果我沒有一個應用程序..與登錄..石油行業應用程序。我強制在應用程序開始註冊..然後我強迫他們給他們的簽名..然後他們在應用程序內免費做他們想要的。通過使用PresentViewController,並保存本地偏好..我可以在啓動時控制用戶體驗。 –

相關問題