ios - 在同时可见的 View Controller 之间触发操作

标签 ios delegation

在搜索、查看和试验之后,我仍然在某个特定问题上失败。 我是一名编程新手,所以碰巧我没有使用正确的搜索词 - 所以请耐心等待,以防我创建重复项。

这是我正在努力解决的情况。

ViewController 1 有两个 UIToolBar。上方的工具栏按钮显示一个值,下方的工具栏按钮触发 ViewController 2 中的操作,该 Controller 恰好是通过容器 View 嵌入的 TableViewController。 原因是 - 我需要在滚动 TableView 时将工具栏保持在适当的位置。

我使用委托(delegate)协议(protocol)将值从 VC2 发送到 VC1 中的上部工具栏,工作正常。 但我无法使用 VC1 中的下部工具栏触发 VC2 中的操作。

我想问三个问题:

1.) 触发操作/解决问题的最佳实践是什么? 2.) 在 VC2 上使用名为“theButtonWasTapped”的方法时,代码实际上是什么样子? 3.)通过容器 View 嵌入TableView的方法是正确的还是有更好的方法?

我尝试阅读各种文档,但我什至不知道在这种情况下从哪里开始。

任何帮助将不胜感激,因为我已经沮丧地坐了好几天了,不知道我的精神障碍在哪里结束,我缺乏的知识从哪里开始。

非常感谢!

最佳答案

如果 VC2 嵌入到容器 View 中,那么它将是 VC1 的 subview Controller 。因此,您可以使用 self.childViewControllers[0] 从 VC1 访问它。所以你应该能够在 VC1 中做这样的事情:

-(IBAction)toolBarButtonTapped:(id) sender {
    SecondViewController *vc2 = self.childViewControllers[0];
    [vc2 methodInVC2];
}

关于ios - 在同时可见的 View Controller 之间触发操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16803134/

相关文章:

javascript - jQuery .on() 委托(delegate)与匹配嵌套元素的选择器

authentication - 没有浏览器的 SAML 2.0

函数中的 JavaScript 原型(prototype)委托(delegate)

java - java访问问题

ios - 如何测试 Apple Push Notifications 反馈服务?

ios - UILocalNotification 每隔一秒重复一次

ios - 无效的 `Podfile` 文件 : uninitialized constant

ios - 如何使用 NSCoding 对通过委托(delegate)传递的值进行编码

iphone - UISlider RGB 颜色更改并保存在 NSUserDefault

ios - 如何动态改变每个 UITableViewCell 的高度?