ios - 从堆栈中弹出当前 View 并推送新的 Xamarin
<p><p>我有一个应用程序,我在注册表单中,当用户单击提交时,它会将他们带到上一页。在上一页时,如果用户单击返回,则会将他们带回我不想要的注册页面。如何从堆栈中删除该注册 View ?</p>
<p>这是我目前的做法:</p>
<pre><code>//inside MyRegistrationController button press
MyPreviousController SVC = this.Storyboard.InstantiateViewController("MyPreviousController") as MyPreviousController;
if(SVC != null){
SVC.offender = offender;
//var viewControllers = this.NavigationController.ViewControllers;
//viewControllers.View.RemoveFromSuperview();
//this.NavigationController.ViewControllers = viewControllers;
this.NavigationController.PopViewController(true);
this.NavigationController.PushViewController(SVC, true);
}
</code></pre>
<p>当前的方法对堆栈做了一些奇怪的事情,我单击 <code>MyRegistrationController</code> 上的按钮我转到 <code>MyPreviousController</code>(未更新)然后快速转到更新版本<code>MyPreviousController</code> 回到 <code>MyPreviousController</code> 的更新版本,然后如果我单击后退按钮,我会返回 <code>MyPreviousController</code></p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>好的,我最终让它工作了。我的问题最终是双重的。一是我需要弹出 View ,二是我需要重新加载 <code>MyPreviousController</code> 中的表数据(我没有提出的问题)。所以我需要做以下事情:</p>
<p>要简单地弹出当前 Controller ,我只需要说:</p>
<pre><code>//inside MyRegistrationController button press
MyPreviousController SVC = this.Storyboard.InstantiateViewController("MyPreviousController") as MyPreviousController;
if(SVC != null){
SVC.offender = offender;
this.NavigationController.PopViewController(true);
}
</code></pre>
<p>但是,这样做会导致我在 <code>MyPrevious</code> 中的表格无法更新。所以我需要把它放在 <code>MyPreviousController.cs</code>:</p>
<pre><code>public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
InvokeOnMainThread (delegate {
TableView.Source = source;
TableView.ReloadData();
});
}
</code></pre>
<p>并且成功更新了表格并移除了注册 View </p></p>
<p style="font-size: 20px;">关于ios - 从堆栈中弹出当前 View 并推送新的 Xamarin,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/37550852/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/37550852/
</a>
</p>
页:
[1]