私は登録フォームにあるアプリケーションを持っています。ユーザーがサブミットをクリックすると、前のページに移動します。前のページにあるときに、ユーザーがクリックすると、必要のない登録ページに戻ります。スタックから登録ビューを削除するにはどうすればよいですか?スタックから現在のビューをポップして新しいものをプッシュXamarin
これは私の現在のアプローチです:
//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);
}
この現在のアプローチは、私は、私はその後すぐに更新されたバージョンに行くMyPreviousController
(更新UN)に行くMyRegistrationController
上のボタンをクリックし、スタック、との奇妙な何かをしますの更新版に戻って、戻るボタンをクリックすると、私はMyPreviousController
に戻ります。
を削除しました。あなたのコメントアウトされたコードの問題は、ViewControllerから単にViewを削除していることです。 ViewControllerを配列から削除し、ViewControllersプロパティを更新された配列に設定して、スタックにもう存在しないようにすることができます。 – dylansturg
私の問題は、UIViewController [] 'remove関数がないので、その配列から要素を削除する方法がわからないことです。 –
配列は要素の追加または削除を許可していません - 固定サイズのデータ構造です。 LINQを使うのはかなり簡単です - 一番上に 'using System.Linq;'を追加してから、 'viewControllers.Take(viewControllers.Length 1).ToArray();'を実行すると、最後の配列なしで新しい配列が作成されますViewControllerを元の配列から削除します。 – dylansturg