如何使用 First Responder 调用另一个 ViewController 方法
How do use First Responder to call another UIViewController's method
我一直在尝试按照这篇关于如何使用 First Responder 的文章进行操作。
http://www.cocoanetics.com/2012/09/the-amazing-responder-chain/
似乎如果视图控制器存在于导航控制器等容器中,我应该能够调用在另一个视图控制器中实现的第一响应者方法
这是 Storyboard 中的布局:
UINavigationController -(关系)-> UITableViewController1 -(推送)-> UITableViewController2
我想在 UITableViewController1 中实现一个方法
即
- (void)coolMethod:(id) { ... }
但是调用了UITableViewController2中的方法
即
[[UIApplication sharedApplication] sendAction:@selector(coolMethod:) to:nil from:nil forEvent:nil];
我想要的是 sendAction:to:from:forEvent:将动作发送到 UINavigationController,然后再将其发送到 UITableViewController2
我正在努力实现的目标是可能的吗?我做错了什么?
(此外,我尝试在故事板中将其链接起来,但它不会连接。显然有问题,但我不知道我错过了什么)
如果您能给我任何帮助或建议,我们将不胜感激!
这不是响应链的用途,您的 VC1 不在 VC2 的响应链中。我想您可以实现自己的导航控制器子类来执行此操作,但这不是好的代码。
通过给 VC2 一个委托 属性 并让 VC1 实现 dal agate 协议并在推送 VC2 时将自己设置为委托,可以更好地处理你所描述的问题。
我一直在尝试按照这篇关于如何使用 First Responder 的文章进行操作。
http://www.cocoanetics.com/2012/09/the-amazing-responder-chain/
似乎如果视图控制器存在于导航控制器等容器中,我应该能够调用在另一个视图控制器中实现的第一响应者方法
这是 Storyboard 中的布局:
UINavigationController -(关系)-> UITableViewController1 -(推送)-> UITableViewController2
我想在 UITableViewController1 中实现一个方法
即
- (void)coolMethod:(id) { ... }
但是调用了UITableViewController2中的方法
即
[[UIApplication sharedApplication] sendAction:@selector(coolMethod:) to:nil from:nil forEvent:nil];
我想要的是 sendAction:to:from:forEvent:将动作发送到 UINavigationController,然后再将其发送到 UITableViewController2
我正在努力实现的目标是可能的吗?我做错了什么?
(此外,我尝试在故事板中将其链接起来,但它不会连接。显然有问题,但我不知道我错过了什么)
如果您能给我任何帮助或建议,我们将不胜感激!
这不是响应链的用途,您的 VC1 不在 VC2 的响应链中。我想您可以实现自己的导航控制器子类来执行此操作,但这不是好的代码。
通过给 VC2 一个委托 属性 并让 VC1 实现 dal agate 协议并在推送 VC2 时将自己设置为委托,可以更好地处理你所描述的问题。