2010-06-11 29 views
9

Tôi đã làm điều này để có được những cái nhìn:được viewController UIView của (iphone)

[self.superview viewWithTag:10] 

Nhưng làm thế nào tôi có thể nhận viewController của quan điểm đó. Cũng giống như bạn có thể có được cái nhìn của viewcontroller tôi muốn đi theo cách khác vì vậy tôi có thể gửi một tin nhắn (gọi một phương pháp) để xem điều khiển đó. ví dụ:

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

(rõ ràng là không thực tế mã nhưng tôi muốn một cái gì đó như thế)

+0

có một cái nhìn tại các giao thức trong mục tiêu c – Daniel

+0

bản sao của http://stackoverflow.com/questions/1340434/get-to-uiviewcontroller-from-uiview-on-iphone, http: // stackoverflow. com/questions/2367348/how-to-get-a-uiviewcontroller-from-a-uiview-qua-mã số – user102008

+0

Chế độ xem không cần phải thực hiện điều đó. –

Trả lời

22

Bạn có thể sử dụng phương pháp -nextResponder để làm điều đó:

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

Theo http://developer.apple.com/library/ios/documentation/uikit/reference/UIResponder_Class/Reference/Reference.html#//apple_ref/occ/instm/UIResponder/nextResponder, "cụ UIView phương pháp này bằng cách trả về đối tượng UIViewController quản lý nó (nếu nó có một) hoặc superview của nó (nếu nó không) "

+1

Có thực sự sạch sẽ và an toàn để có được chế độ xem của chế độ xem bằng cách gọi phương thức này không? – booker

+1

Thực ra nó không hiệu quả với tôi. – booker

+1

Nó làm việc tốt cho tôi –

12

bạn có thể cho chúng tôi e

[yourUIView.window.rootViewController doSomething] 
+0

một số chi tiết khác có câu trả lời về điều đó ... http://stackoverflow.com/a/2596519/294884 có thể giúp ai đó – Fattie

Các vấn đề liên quan