【问题标题】:get UIView's viewcontroller (iphone)获取 UIView 的 viewcontroller (iphone)
【发布时间】:2011-03-02 19:23:15
【问题描述】:

我这样做是为了获得视图:

[self.superview viewWithTag:10]

但是我怎样才能获得该视图的视图控制器。就像您可以获取视图控制器的视图一样,我想换一种方式,这样我就可以向该视图控制器发送消息(调用方法)。例如:

[[self.superview viewWithTag:10].viewController doSomething];

(显然这不是实际代码,但我想要类似的东西)

【问题讨论】:

标签: objective-c iphone uiview uiviewcontroller


【解决方案1】:

你可以使用

[yourUIView.window.rootViewController doSomething]

【讨论】:

【解决方案2】:

您可以使用-nextResponder 方法来做到这一点:

[(YourUIViewController *)[[self.superview viewWithTag:10] nextResponder] doSomething];

根据http://developer.apple.com/library/ios/documentation/uikit/reference/UIResponder_Class/Reference/Reference.html#//apple_ref/occ/instm/UIResponder/nextResponder,“UIView 通过返回管理它的 UIViewController 对象(如果有)或其父视图(如果没有)来实现此方法”

【讨论】:

  • 调用这个方法获取视图的viewcontroller真的干净安全吗?
  • 只是 [theView nextResponder];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多