gpt4 book ai didi

objective-c - 关闭模态视图 Controller 后呈现不同的 View Controller

转载 作者:行者123 更新时间:2023-11-29 11:11:48 26 4
gpt4 key购买 nike

我为 iOS 应用程序中的各种 UI 设置提供了一个模态视图 Controller 。其中一个设置允许用户选择不同的主视图。当他们点击“完成”时,我想关闭模态视图并显示新选择的 View Controller ,而不会在旧 View Controller 切换到新 View Controller 时出现短暂延迟。如何实现?

更新:

这是我使用 Eugene 的技术成功实现的方法,但没有应用程序委托(delegate)。相反,此实现特定于我的场景,其中导航堆栈中的 View Controller 在实用程序应用程序中呈现模态视图 Controller 。

- (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.");
}
}

最佳答案

- (IBAction)doDismiss:(id)sender {
AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; // Get the app delegate
NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:appDelegate.navigationController.viewControllers]; // fetch its navigationController viewControllers stack
UIViewController *replacementController; //initialize replacement controller
[viewControllers replaceObjectAtIndex:viewControllers.count -1 withObject:replacementController]; // replace the top view controller in stack with the replacement one
[appDelegate.navigationController setViewControllers:viewControllers]; //change the stack
[self dismissModalViewControllerAnimated:YES];
}

关于objective-c - 关闭模态视图 Controller 后呈现不同的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11226753/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com