Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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)

like image 630
Jonathan. Avatar asked Jun 11 '10 18:06

Jonathan.


2 Answers

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)"

like image 130
user102008 Avatar answered Nov 18 '22 00:11

user102008


you can use

[yourUIView.window.rootViewController doSomething]
like image 23
itecheck Avatar answered Nov 17 '22 23:11

itecheck