gpt4 book ai didi

ios - 关闭 ModalViewController 时返回除 ParentViewController 之外的 ViewController

转载 作者:行者123 更新时间:2023-11-29 03:47:52 25 4
gpt4 key购买 nike

首先,看一下我的 Storyboard的屏幕截图:

storyboard layout

这是一个声音 map 应用程序。用户可以录制新的现场录音,也可以从库中选择现有的录音并上传。用户必须添加标题/描述等(或在来自库时修改它们)的 ViewController 以模态方式呈现(在右上角)。

如果用户选择取消此操作并删除录音,则他应返回录音屏幕(如果他来自那里),否则返回图书馆。如果他选择保存/上传录音,他将返回到图书馆,那里会显示上传进度。

如何独立于我来自的 ParentViewController 返回所需的 ViewController?

我考虑过 unwindSegue,但这对我的布局不起作用。然后我想出了一个肮脏的解决方法,我更改了 TabBarController 的选定选项卡。但我还想正确设置委托(delegate)来传递一些数据。

欢迎任何想法!

最佳答案

我不认为更改选项卡栏 Controller 的 selectedIndex 是一种“肮脏的解决方法”——根据您的设置,这就是执行此操作的方法。看来您希望 EntryViewController (库)成为 EntryDetailViewController 的委托(delegate)。如果是这样,您可以在 EntryDetailViewcontroller 的 viewDidLoad 方法中设置委托(delegate),如下所示:

#import "DetailViewController.h"
#import "TableController.h"

@interface DetailViewController ()
@property (strong,nonatomic) UITabBarController *tbc;
@end

@implementation DetailViewController


- (void)viewDidLoad {
[super viewDidLoad];
self.tbc = (UITabBarController *)self.presentingViewController;
self.delegate = (TableController *)[(UINavigationController *)self.tbc.viewControllers[1] topViewController];
}


- (IBAction)saveAndUpload:(UIButton *)sender {
[self.tbc setSelectedIndex:1];
[self.delegate saveRecording:@"test recording"];
[self dismissViewControllerAnimated:YES completion:nil];
}


- (IBAction)delete:(UIButton *)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}

在我的示例中,我只有两个按钮用于保存或取消,并且我的 TableController 将与您的库 Controller 相同。

关于ios - 关闭 ModalViewController 时返回除 ParentViewController 之外的 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17478432/

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