2010-04-14 64 views
0

之間傳遞NSMutableArray我有兩個視圖控制器名稱RootViewController和SecondViewController。在FirstViewController我有這樣的NSMutableArray在兩個UIViewController的

@interface RootViewController : UITableViewController { 

NSMutableArray *allClasses;}@property (nonatomic,retain) NSMutableArray *allClasses; 

在RootViewController的我填充的UITableView與內allClasses

所有對象在我SecondViewController我有

@interface SecondViewController : UIViewController <UITextFieldDelegate,UIPickerViewDelegate> { 

NSMutableArray *arrayStrings;} 

我有增加了新的方法NSString到arrayStrings。我的目標是通過嘗試類似於allClasses = arrayStrings的方法將arrayStrings傳遞給RootViewController。這樣,當RootViewController被加載時,它可以填充新的信息。

我如何才能完成這項任務?

回答

0

在RootViewController的實現

-(void)viewWillAppear:(BOOL)animated 

此委託方法。在此方法中

self.allClasses = SecondViewControllerObj.arrayStrings; 

SecondViewControllerObj是SecondViewController的對象RootViewController的聲明爲成員,這是用來導航到該視圖

if(SecondViewControllerObj == nil) 
    { 
     SecondViewControllerObj = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 
    } 

     [self.navigationController pushViewController:SecondViewControllerObj animated:YES]; 
0

您需要在第二個視圖控制器中具有根視圖控制器的引用。在那裏你需要將allclasses設置爲arrayStrings; 一般而言,您可以通過以下代碼找到對推入堆棧的任何視圖控制器的引用。

NSArray *viewConts = [[self navigationController] viewControllers]; 
     for(int i=0;i<[viewConts count];i++) 
     { 
      if([[viewConts objectAtIndex:i] isKindOfClass:[RootViewController class]]){ 
       RootViewController *rootController = (RootViewController *)[viewConts objectAtIndex:i]; 
       [rootController setAllClasses:arrayStrings]; 

      } 

     } 

現在,在viewWillAppear of RootViewController中,您需要重新加載視圖的內容。

希望這會有所幫助。

感謝,

Madhup

相關問題