Iphone 显示不带后退按钮的ViewController

Iphone 显示不带后退按钮的ViewController,iphone,ios,xamarin.ios,Iphone,Ios,Xamarin.ios,我遇到了一个恼人的问题,这让我失去了最佳状态:尝试在推新的视图控制器之前弹出当前视图控制器(我想没有动画)。如果导航堆栈中只有一个视图控制器,则不会显示“后退”按钮 我没用过Monotouch,但我猜是这样的: this.NavigationController.PopViewControllerAnimated(false); this.NavigationController.PushViewController(newViewController, true); 但正如Caleb所建议的

我遇到了一个恼人的问题,这让我失去了最佳状态:尝试在推新的视图控制器之前弹出当前视图控制器(我想没有动画)。如果导航堆栈中只有一个视图控制器,则不会显示“后退”按钮

我没用过Monotouch,但我猜是这样的:

this.NavigationController.PopViewControllerAnimated(false);
this.NavigationController.PushViewController(newViewController, true);

但正如Caleb所建议的,最好找到一种适合正常导航行为的方法,而不是绕过它。

也许在这里最自然的做法是以模式显示登录视图控制器。用户成功登录后,第一个控制器可以将第三个视图控制器推送到导航堆栈上。这样,后退按钮将直接返回到第一个视图控制器,用户将了解原因。

考虑以下视图推送逻辑

if (!login) {
    LoginViewController *lvc = [[[LoginViewController alloc] init] autorelease];
    [self.navigationController pushViewController:lvc];
}
else {
    ThirdViewController *tvc = [[[ThirdViewController alloc] init] autorelease];
    [self.navigationController pushViewController:tvc];
}

它是:在需要时创建并推送视图控制器。

因此,如果我们有三个UIViewController:

详细视图控制器 FacebookLoginViewController UpdateViewController

PopViewController(detailViewController, false);
PushViewController(updateViewController, true);
PushModalViewController(loginViewController, true);

//ascertain result of login

if(IsLoggedIn) {
    PushViewController(updateViewController, true);
}
我们有两个可行的选择:

1) 成功登录后…弹出当前LoginViewController,然后推送UpdateViewController

PopViewController(detailViewController, false);
PushViewController(updateViewController, true);
PushModalViewController(loginViewController, true);

//ascertain result of login

if(IsLoggedIn) {
    PushViewController(updateViewController, true);
}
2) 以模式显示登录名,并仅显示UpdateViewController

PopViewController(detailViewController, false);
PushViewController(updateViewController, true);
PushModalViewController(loginViewController, true);

//ascertain result of login

if(IsLoggedIn) {
    PushViewController(updateViewController, true);
}

谢谢,我将尝试以下几种解决方案:D你将在一段时间内收到我的来信。遗憾的是,这些答案都不适用于我。PushModalViewcontroller不是现有的方法。我尝试的:-在按钮上单击并按下登录屏幕(this.NavigationController.PresentModalViewController(Login))-如果在第二个屏幕中登录成功,则按下:this.NavigationController.PushViewController(statusUpdate)我将获得NavigationController的空指针。它对PopToViewController也不起作用,得到我的viewcontroller不存在的错误:/I正在尝试通过以下操作弹出登录屏幕:this.NavigationController.PopViewControllerAnimated(true)this.NavigationController.PushViewController(updateStatus,true),但由于某些原因,我在导航控制器中得到空指针