簡體   English   中英

UIViewController層次結構

[英]UIViewController Hierarchy

如果有多個視圖(例如視圖1,視圖2,視圖3,視圖4和視圖5),並且它們位於導航堆棧中,而視圖5是當前視圖(位於頂部),則如何訪問編寫的方法在view5的view5控制器中? 就像在view5控制器中創建view3控制器實例然后調用該方法一樣嗎? 但這不是我相信的理想方法。 在這種情況下最好的方法是什么?

您可以通過訪問導航控制器堆棧來訪問它-

NSMutableArray *activeControllerArray = [self.navigationController.viewControllers mutableCopy];

Controller3 myController;
For(int i = 0, i <[activeControllerArray  count], i++) {
    if([[activeViewController objectAtIndex:i] isKindOfClass:[Controller3 class]) {
        myController = [activeViewController objectAtIndex:i];
     }
}

現在,您可以執行所需的操作。

    NSMutableArray *controllers = [[self.navigationController.viewControllers mutableCopy] autorelease];

ABCController *controller = [controllers objectAtIndex:2]; //ABCController is the name of conroller class
[controller methodName] ;

這種方法應該有效

我建議創建一個基類,從該基類派生view1,view2,... view 5。 基類將包含此方法,從而使所有類(view1,view2,...)都可以訪問此方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM