在搜索、查看和试验之后,我仍然在某个特定问题上失败。 我是一名编程新手,所以碰巧我没有使用正确的搜索词 - 所以请耐心等待,以防我创建重复项。
这是我正在努力解决的情况。
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/