xamarin Pop一个DialogViewController阻止下一个推出的视图显示

时间:2013-08-31 01:54:38

标签: ios xamarin.ios xamarin

我正在尝试使用Xamarin Studio 4.0.12(版本3)为iOS编写一个简单的应用程序。

我有一个“主页”UIViewController,这是第一个被添加到rootNavigationController

Home有一个按钮,用于显示基于DialogViewController的“登录”或“创建帐户”视图。这些显示时会调用this.NavigationController.PushViewController以响应主页视图按钮(因此“此”是主页实例)。

当用户取消登录对话框时,会进行回调,并在该代码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的呼叫,则会显示详细信息屏幕,但导航栏上有一个按钮可返回登录屏幕。 我真的想用视图堆栈中的详细信息屏幕替换登录屏幕。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用PresentViewController替换PushViewController。

this.PresentViewController(receiptsScreen,true, null);