我有一個UIViewController,它有一個UIPopoverController,它有一個UINavigationController,然後是一個UIViewController。我如何從子UIViewController調用父UIViewController中的方法(例如。 - (void)update)?嘗試了很多組合,但仍然沒有奏效。嵌套父控制器中的調用方法
1
A
回答
5
在你的孩子:
@interface MyChildController:UIViewController {
MyParentController *parent;
}
@property(nonatomic, assign) MyParentController *parent;
@end
@implementation MyChildController
@synthesize parent;
...
在你父控制器,實例化你的孩子時:
MyChildController *newChild = [[[MyChildController alloc] initWithNibName:nil bundle:nil] autorelease];
newChild.parent = self;
...
現在你的孩子,你有裁判你的父母,你可以使用。例如,你孩子的某種方法:
- (IBAction)someAction {
[self.parent doSomethingParentsDo];
}
1
一種可能的方法是使用NSNotificationCenter。在父ViewController的viewDidLoad:
方法中,將其註冊爲某個通知的觀察者(在我的示例中,我將使用@「DummyNotification」作爲通知名稱)。然後將該通知從適當的方法發佈到子ViewController中。其結果將是這個樣子:
ParentViewController.m
- (void) viewDidLoad
{
/* existing code */
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(update) name:@"DummyNotification" object:nil];
}
- (void) update
{
//method body
}
ChildViewController.m
//put this line wherever you want the ParentViewController to call -update
[[NSNotificationCenter defaultCenter] postNotificationName:@"DummyNotification" object:self];
參考:NSNotificationCenter Class Reference
而且,這個問題被標記爲iPhone,但蘋果UIPopoverController文檔指出,該類專門用於iPad,並且不適用於其他設備。這個問題被標記爲錯誤嗎?
相關問題
- 1. 父控制器上的調用方法?
- 2. 從子控制器調用父控制器的方法
- 3. 在嵌套調用方法中獲取父方法參數值
- 4. jQueryUI + jQtree,調用嵌套列表中的方法調用父和子方法
- 5. 從AngularJS中的指令調用父控制器的方法
- 6. 父視圖控制器中的調用方法
- 7. 如何調用父視圖控制器中的函數/方法
- 8. 嵌套控制器
- 9. 使用嵌套控制器
- 10. 從AngularJS的父控制器調用指令控制器的方法
- 11. 調用控制器方法
- 12. 使用隔離範圍調用嵌套指令的父控制器的功能
- 13. 允許嵌套的JSplitPanes控制父JSplitPanes
- 14. iPhone - 在父視圖控制器中調用方法
- 15. 調用控制器中的方法
- 16. 如何知道嵌套路徑中的父控制器Laravel?
- 17. 嵌套遞歸指令將參數傳遞給父控制器方法
- 18. 如何調用從模型控制器父類的方法
- 19. 以嵌套模式形式從一個控制器調用兩個方法
- 20. 使用嵌套異步方法調試異步MVC操作控制器
- 21. 嵌套中繼器 - 從子中繼器訪問父節點中的控制器
- 22. Laravel 4嵌套控制器
- 23. Angularjs嵌套NG控制器
- 24. CodeIgniter嵌套控制器?
- 25. 嵌套導航控制器
- 26. AngularJS嵌套控制器
- 27. JavaFx嵌套控制器?
- 28. Laravel 4.0嵌套控制器
- 29. 嵌套對象控制器
- 30. 在另一個控制器中調用控制器方法Ember
謝謝!我知道「關注點分離」有一些問題,但我確實需要訪問父視圖控制器上的函數。搜索網站的高低這個簡單的東西,謝謝。 – Rail24 2013-04-03 13:04:06