我有一个应用程序,我在注册表单中,当用户单击提交时,它会将它们带到上一页。在上一页上,如果用户点击它,则会将它们带回到我不想要的注册页面。如何从堆栈中删除该注册视图?
这是我目前的做法:
//inside MyRegistrationController button press
MyPreviousController SVC = this.Storyboard.InstantiateViewController("MyPreviousController") as MyPreviousController;
if(SVC != null){
SVC.offender = offender;
//var viewControllers = this.NavigationController.ViewControllers;
//viewControllers[viewControllers.Length - 1].View.RemoveFromSuperview();
//this.NavigationController.ViewControllers = viewControllers;
this.NavigationController.PopViewController(true);
this.NavigationController.PushViewController(SVC, true);
}
这个当前的方法对堆栈有些奇怪,我点击MyRegistrationController
上的按钮我转到MyPreviousController
(未更新)然后快速转到MyPreviousController
的更新版本回到MyPreviousController
的更新版本然后如果我点击后退按钮,我会回到MyPreviousController
答案 0 :(得分:3)
好的,我最终让它上班了。我的问题最终成了双重问题。一个我需要弹出视图,两个我需要MyPreviousController
中的表格数据重新加载(我没有提出的问题)。所以我需要做以下事情:
要简单地弹出当前控制器,我只需说:
//inside MyRegistrationController button press
MyPreviousController SVC = this.Storyboard.InstantiateViewController("MyPreviousController") as MyPreviousController;
if(SVC != null){
SVC.offender = offender;
this.NavigationController.PopViewController(true);
}
但是这样做会导致MyPrevious
中的表格无法更新。所以我需要把它放在MyPreviousController.cs
:
public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
InvokeOnMainThread (delegate {
TableView.Source = source;
TableView.ReloadData();
});
}
并成功更新了表并删除了注册视图