iOS アプリのさまざまな UI 設定用のモーダル ビュー コントローラーを紹介します。これらの設定の 1 つを使用すると、ユーザーは別のメイン ビューを選択できます。「完了」を押したら、モーダル ビューを閉じて、新しく選択したビュー コントローラーを表示させたいと思います。古いビュー コントローラーが新しいビュー コントローラーに移行する瞬間的な遅延はありません。これはどのように実装できますか?
アップデート:
これは、Eugene の手法を使用して実装に成功したメソッドですが、アプリ デリゲートはありません。代わりに、この実装は、ナビゲーション スタック内のビュー コントローラーがユーティリティ アプリ内のモーダル ビュー コントローラーを提示するシナリオに固有のものです。
- (void)swapFrontSideViewController;
{
UINavigationController *navigationVC = (UINavigationController *)[self presentingViewController];
NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:navigationVC.viewControllers];
UIViewControllerSubclass *selectedViewController = nil;
if ([self.selectedFrontSide isEqualToString:FRONT_SIDE_NAME1]) {
selectedViewController = [self.storyboard instantiateViewControllerWithIdentifier:FRONT_SIDE_NAME1];
} else if ([self.selectedFrontSide isEqualToString:FRONT_SIDE_NAME2]) {
selectedViewController = [self.storyboard instantiateViewControllerWithIdentifier:FRONT_SIDE_NAME2];
}
if (selectedViewController) {
[viewControllers replaceObjectAtIndex:viewControllers.count -1 withObject:selectedViewController];
[navigationVC setViewControllers:viewControllers];
self.delegate = selectedViewController;
} else {
NSLog(@"Error: Undefined Front Side Selected.");
}
}