得到UIView的viewcontroller(iphone)

Jon*_*an. 9 iphone objective-c uiviewcontroller uiview

我这样做是为了得到这个观点:

[self.superview viewWithTag:10]
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能获得该视图的viewcontroller.就像你可以获得viewcontroller的视图一样,我想转向其他方式,这样我就可以向该viewcontroller发送消息(调用方法).例如:

[[self.superview viewWithTag:10].viewController doSomething];
Run Code Online (Sandbox Code Playgroud)

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

use*_*008 23

您可以使用该-nextResponder方法执行此操作:

[(YourUIViewController *)[[self.superview viewWithTag:10] nextResponder] doSomething];
Run Code Online (Sandbox Code Playgroud)

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

  • 它只是[theView nextResponder]; (2认同)

小智 12

您可以使用

[yourUIView.window.rootViewController doSomething]
Run Code Online (Sandbox Code Playgroud)