我有一個UIViewController
,UIView
作爲子視圖。我想通知UIViewController
(或聽取)UIView
中的某些操作。 這樣做的標準方法是什麼?告訴UIViewController有關在子視圖中發生的事情
回答
如果你只是想有一個行動處理器:
- (void)viewDidLoad {
[super viewDidLoad];
// ......
UIButton *myButton = [[UIButton alloc] init]; // or initWithSOMETHING
[myButton addTarget:self action:@selector(someMethod:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:myButton];
[myButton release];
// ......
}
- (void)someMethod:(id)sender {
if (![sender isKindOfClass:[UIButton class]]) return;
// Do something about the action here...
}
欲瞭解更多信息,請參閱UIControl
Documentation:
準備和發送活動消息
– sendAction:to:forEvent: – sendActionsForControlEvents: – addTarget:action:forControlEvents: – removeTarget:action:forControlEvents: – actionsForTarget:forControlEvent: – allTargets – allControlEvents
或者,如果你談論調用父視圖控制器視圖控制器,你可以使用一個UIViewController
的presentingViewController
屬性來訪問「父」視圖控制器:
UIViewController *parentVC = [self presentingViewController];
[parentVC setSomething:self.withSomething];
presentingViewController
- 視圖呈現此視圖控制器的控制器。 (只讀)
@property(nonatomic, readonly) UIViewController *presentingViewController
討論
此屬性的默認實現走到認爲 層次,從這個視圖控制器開始。第一個視圖 控制器發現收到presentViewController:animated:completion:
方法,或者其definesPresentationContext
屬性設置爲YES
作爲該屬性的值返回 。它繼續向上走直到 找到要返回的值或它到達根視圖控制器。
還是一個UIView
的superview
屬性:
[self.view.superview doSomething];
superview
- 接收機的上海華盈,或者如果它現在沒有零。根據您的回答上述評論
@property(nonatomic, readonly) UIView *superview
(只讀),這是一個按下按鈕,「標準」的方法是使用機制UIControl。所以,編程,如果你做
[myButton addTarget:myViewController action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
按「myButton的」將導致「buttonPressed:」要在myViewController執行的方法。您還可以使用Interface Builder進行連接。
這段代碼可以放在許多不同的地方(在UIView中,在UIViewController中),結果,變量的確切名稱會改變,但是對於處理一個按鈕,這可能是最簡單的方法。
- 1. UITableViewController子視圖:告訴pushViewController擁有UIViewController
- 2. android:button onClick(),不能告訴是否有任何事情發生
- 3. 如何在我回發視圖時告訴發生了什麼?
- 4. 如何告訴react-router等到發生了什麼事情?
- 5. PlotOutput告訴我有關意外的事情,「
- 6. UIViewController子視圖發佈?
- 7. 有誰能告訴我這裏發生了什麼事?
- 8. UIViewController中刪除子視圖
- 9. 在UITableViewCell的子視圖中添加UIViewController
- 10. 如何在UIScrollview中觸發UIViewcontroller視圖的旋轉事件
- 11. 自定義視圖:告訴孩子父母有其他尺寸
- 12. 告訴現有的線程做一些事情Ruby
- 13. 有沒有人可以告訴我爲什麼發生這種情況c
- 14. UIViewcontroller作爲子視圖沒有得到觸摸事件
- 15. 查看所有內容:UIWindow子視圖VS UIViewController子視圖
- 16. 在界面生成器中添加的UIViewController子視圖沒有出現
- 17. 當在UITabBarController框架中選擇UIViewController時,視圖發生變化
- 18. 將故事板添加爲UIViewController中的子視圖
- 19. 在表單關閉事件中發生異常時發生的情況
- 20. Backbone.js子視圖中的觸發事件
- 21. 何時訪問UIViewController生命週期中的子視圖屬性?
- 22. 錯誤時如子視圖中的UIViewController
- 23. 在UIViewController的一個子視圖
- 24. 在UIViewController中沒有收到NSNotification,它的視圖是UIScrollview的子視圖
- 25. UIViewController子視圖不顯示
- 26. UIViewController和Autolayout子視圖
- 27. 一個有趣的事情發生...... ExecutorCompletionService
- 28. websocket關閉事件會在什麼情況下告訴您清除錯誤?
- 29. 在android中按順序發生事情
- 30. 作爲UIView中的子視圖調用UIViewController視圖的問題
什麼樣的行爲?按鈕按?財產有其價值變化嗎? –
確定按鈕按下的作品。 – SundayMonday