【问题标题】:Xcode: How to call a method from a another view? Interaction between viewsXcode:如何从另一个视图调用方法?视图之间的交互
【发布时间】:2013-03-06 14:09:35
【问题描述】:

我有一个视图控制器,另一个视图控制器作为子控制器,并且 表视图控制器也作为子控制器。我的第一个孩子就像一个有几个按钮的工具栏,但没有任何方法。我需要的是,当点击第一个孩子的按钮时,这个视图必须调用一个带有按钮标签的方法(所有按钮都有 不同的标签)从表视图控制器过滤列表。那么,我需要知道什么来控制这些子控制器之间的交互?

谢谢。

【问题讨论】:

  • 您不能将 viewcontroller 作为另一个 viewcontroller 的子视图。视图控制器通常包含一个主视图并向其添加其他子视图..您需要理清基本概念。
  • 好吧,我想我的解释是错误的。我有一个视图控制器,它有一个视图控制器,按钮作为子视图,表视图控制器也作为子视图
  • 您可以使用通知、委托或 kvo 在不同的 viewController 之间进行通信。您可以选择
  • 您不能在 UIViewController 中子查看 UIViewController。您要么有两个单独的UIViewControllers,要么有UIViewsUIViewController 中的子视图。如果您有两个单独的UIViewControllers,只需在谷歌上搜索“UIViewControlller 之间的通信,有数千个问题与此有关。
  • 我正在做的是这个......我有一个 NavigationController。在这个 NavigationController 中,我添加了一个 ViewController。在这个 ViewController 中,我从另一个 2 ViewController 添加了 View。第一个 ViewController(上)有几个按钮,另一个 ViewController(下)是 TableViewController,但我只是使用函数“addSubview”将此 ViewControllers 中的视图添加为子视图。我需要的是当我从上面的 subView 中点击一个底部时,从下面的 subView 更改内容,所以......我可以在这个 subViews 之间交互/通信谁?

标签: ios objective-c delegates uitableview


【解决方案1】:

在其他视图中处理更改、操作或用户交互是delegates 的基本用例。最佳实践是让第一个视图控制器成为子视图控制器的代表,然后当子视图控制器中发生事件时,它们会调用其代表的某些方法来通知它。为了响应委托调用,您可以重新加载表格视图、禁用/启用按钮或您需要执行的任何其他更新。

在视图之间保持值/状态同步的其他选项是:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    相关资源
    最近更新 更多