Jonathan.
Jonathan.

Reputation: 55604

get UIView's viewcontroller (iphone)

I've done this to get the view:

[self.superview viewWithTag:10]

But how can I get that view's viewcontroller. Just like you can get the the viewcontroller's view I want to go the other way so I can send a message (call a method) to that viewcontroller. eg:

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

(obviously that not actual code but I want something like that)

Upvotes: 9

Views: 20068

Answers (2)

itecheck
itecheck

Reputation: 129

you can use

[yourUIView.window.rootViewController doSomething]

Upvotes: 12

user102008
user102008

Reputation: 31343

You can use the -nextResponder method to do it:

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

According to http://developer.apple.com/library/ios/documentation/uikit/reference/UIResponder_Class/Reference/Reference.html#//apple_ref/occ/instm/UIResponder/nextResponder , "UIView implements this method by returning the UIViewController object that manages it (if it has one) or its superview (if it doesn’t)"

Upvotes: 22

Related Questions