2012-04-13 49 views
1

想知道我如何傳遞價值回到根視圖控制器時,我popToRoot。如何傳遞值當popToRoot

introVideoViewController *intro = [introVideoViewController alloc]; 
    intro.fromReset =1; 
    [self.navigationController popToRootViewControllerAnimated:NO]; 
+1

學會使用委託......這將是非常有益的。 – 2012-04-13 11:27:37

+2

從什麼時候開始,團隊不工作?! – SomaMan 2012-04-13 11:34:59

+0

整個iPhone sdk基於委派...你怎麼能說它不適用於ios5 ...任何書面證明,你可以指導我太.. ..? @AalokParikh – 2012-04-13 11:40:07

回答

3

與您要彈出從後面的VC,你需要給它一個代表屬性 -

@class MyViewController; 

@protocol MyViewControllerDelegate <NSObject> 

    -(void)myViewControllerDidDismiss:(MyViewController *)controller withSomeObject:(id)someObject; 

@end 


@interface MyViewController : UIViewController 

@property (nonatomic, assign) id<MyViewControllerDelegate> myViewControllerDelegate; 

@end 

...並在根VC你使其符合該協議,並實施罷免法 -

-(void)myViewControllerDidDismiss:(MyViewController *)controller withSomeObject:(id)someObject { 

    // now I've got the object from the VC I just popped 

} 

忘了提,你需要調用myViewControllerDidDismiss:withSomeObject:當你彈出的VC。

編輯 - 也忘了提,你需要設置VC的委託作爲你的根VC,當你創建它,否則它會試圖調用爲零,當你彈回 -

[myViewController setMyViewControllerDelegate:self]; 
2

剛使用下面的代碼

NSArray *arr = [self.navigationController viewControllers]; 
CLASS_OF_ROOT_VIEW_CONTROLLER *rvc = (CLASS_OF_ROOT_VIEW_CONTROLLER *)[arr objectAtIndex:0]; 
rvc.variable = value;