gpt4 book ai didi

ios - 交换 View 并触发另一个类中的方法

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

我正在使用 Storyboard ,我希望当用户单击某个按钮 (SwapViewAndTriggerMethod) 时, View 会更改为由第二个 View Controller 定义的另一个 View (SecondView),然后是 SecondView 中存在的某个方法 (MyMethod) .m 被调用。我正在使用下面的代码,这成功地将我带到了另一个 View ....但是 MyMethod 没有被调用。请问我怎样才能做到这一点?干杯!

- (IBAction) SwapViewAndTriggerMethod:(id)sender
{
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondView_storyboard"];

[self presentViewController:controller animated:YES completion:nil];

[instanceOfGS2controlller MyMethod:nil];
}

这是我得到的错误:警告:试图在 上显示其 View 不在窗口层次结构中!注意:MyMethod 调用选取器来选择照片并将其分配给 ImageView 。

最佳答案

您不能像那样从另一个 Controller 调用显示选取器 View Controller 的方法,因为正如错误所说,SecondView_ViewController 的 View 还不在窗口层次结构中。您可以在 SwapViewAndTriggerMethod: 中设置一个标志,并在 SwapViewAndTriggerMethod: 的 viewDidAppear 中使用它来呈现选择器,

- (IBAction) SwapViewAndTriggerMethod:(id)sender {
SecondView_ViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondView_storyboard"];
[self presentViewController:controller animated:YES completion:nil];
controller.presentPicker = YES; // presentPicker is a BOOL property that you need to add to SecondView_ViewController
}

然后,在 SecondView_ViewController 中,执行此操作,

-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if (self.presentPicker)
// present your picker here
self.presentPicker = NO;
}

关于ios - 交换 View 并触发另一个类中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23350080/

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