簡體   English   中英

NSMutableArray與UIView iPhone

[英]NSMutableArray Vs UIView iphone

我的MainViewController類中有一個NSMutableArray。我向NSMutableArray中添加了10個對象。當我在MainViewController類中單擊subview按鈕時,我按了SubviewController(UIViewController)類。...在subviewcontroller類中,我想使用NSMutableArray的MainViewController值。 我也想從該NSMutableArray添加或刪除對象...

我的目標是我要使用變量名稱相同的NSMutableArray值對我項目的所有UIViewController類使用。

如果我理解正確,那么您想從所有(子視圖)控制器訪問MainViewController中的NSMutableArray嗎?

您可以將句柄存儲到MainViewController中的所有子視圖中,並使用該句柄訪問數組。

我認為更好的主意是將數據移至某些可全局訪問的實例(例如,移至ApplicationDelegate類或將其包裝為singleton類)

您要做的是在主視圖控制器中添加一個Cocoa屬性 ,該屬性引用您實例化並使用元素填充的NSMutableArray實例。

在標題中:

@interface MainViewController : UIViewController {
  NSMutableArray *myMutableArray;
}

@property (nonatomic, retain) NSMutableArray *myMutableArray;

@end

在實現中,添加@synthesize指令,並記住在-dealloc release該數組:

@implementation MainViewController

@synthesize myMutableArray;

...

- (void) dealloc {
  [myMutableArray release];
  [super dealloc];
}

@end

您還希望以完全相同的方式將此屬性添加到從屬於主視圖控制器的視圖控制器。

在主視圖控制器中,當您准備按下從屬視圖控制器時,可以相應地設置從屬視圖控制器的屬性:

- (void) pushSubordinateViewController {
  SubordinateViewController *subVC = [[SubordinateViewController alloc] initWithNibName:@"SubordinateViewController" bundle:nil];
  subVC.myMutableArray = self.myMutableArray; // this sets the sub view controller's mutable array property
  [self.navigationController pushViewController:subVC animated:YES];
  [subVC release];
}

同樣,在你的下屬視圖控制器, 需要相應地設置其下屬的可變數組屬性,當它推出了它自己的看法控制器。

通過以這種方式設置引用,每個視圖控制器都指向包含所需元素的同一可變數組。

要使用該數組,只需調用self.myMutableArray ,例如[self.myMutableArray addObject:object]

暫無
暫無

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

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