2012-02-01 56 views
1

我在深水中嘗試獲取vc的位置。Objective-C - 獲取UIViewController引用

我的應用佈局看起來是這樣的:

TabBarController(持有) - > UINavController的選項卡1(持有) - > MyOwnListViewController - > UINavController(模態)(持有) - > ItemAddViewController - > AddItemToItemViewController

也許這不是很清楚,所以爲了清晰起見,當應用程序啓動時,我在標籤1上,並且MyOwnListViewController可見,然後我在導航欄中按下+按鈕,然後以模態方式拍攝到ItemAddViewController 。從那裏我pushViewController AddItemToItemViewController。現在在這個視圖控制器中,我想獲得對ItemAddViewController的引用。

什麼是最簡單的方法來獲得它的參考?

回答

0

您可以修改AddItemToItemViewController的init ***方法,並將它傳遞給ItemAddViewController上的引用。

E.G:

在AddItemToItemViewController.h:

@property (nonatomic, retain) UIViewController *parentController; 

在AddItemToItemViewController.m:

@synthesize parentController; 

-(id) initWithParentController:(UIViewController *) controller{ 
    self = [super init]; 

    if(self){ 
     self.parentController = controller; 
    } 
    return self; 
} 

-(void) dealloc{ 
    [self.parentController release]; 
    [super dealloc]; 
} 

當調用您的ItemAddViewController實例內部控制器:

UIViewController *controller = [[AddItemToItemViewController alloc] initWithParentController:self]; 
[self.navigationController pushViewController:controller animated:YES]; 
[controller release]; 
+0

我同意TeddyBear的回答與一個建議:使用'assign'與parentController屬性,而不是'保留'。 – 2012-02-01 17:29:58

+0

這是一種選擇。但是,我沒有辦法通過'self.navigationController.viewControllers'屬性獲得引用嗎? – 2012-02-01 17:35:08

+0

我用'[self.navigationController.viewControllers objectAtIndex:0]'得到了它。它之前正在返回(null),因爲之前我調用了「popViewController」。 – 2012-02-01 17:48:31

相關問題