我有一个类的NSMutableArray,在其他类中,我想对其进行初始化并添加各种对象。但是问题是NSMutableArray没有保留元素。我有以下代码:

 -(void)viewDidLoad
  {
    [super viewDidLoad];
    MyStops *myStops = [self.storyboard instantiateViewControllerWithIdentifier:@"My Stops"];
    myStops.myStopsMArray = [[NSMutableArray alloc] init];
  }


和这个:

- (void) addToFavourites:(id)sender
  {
    UITapGestureRecognizer *gesture = (UITapGestureRecognizer *) sender;

    NSInteger tag = gesture.view.tag;

    UITableViewCell *cell = [stopsTable dequeueReusableCellWithIdentifier:@"cell"];

    MyStops *myStops = [self.storyboard instantiateViewControllerWithIdentifier:@"Mis Paradas"];

    [myStops.myStopsMArray addObject:[stopsArray objectAtIndex:tag]];
 }


在另一个文件中,我声明并合成了NSMutableArray:

//Header file
@property (nonatomic, retain) NSMutableArray *myStopsMArray;

//Implementation file
@synthesize myStopsMArray;


你能告诉我我在做什么错吗?
谢谢!

最佳答案

instantiateViewControllerWithIdentifier每次创建并返回NEW INSTANCE!
因此,您必须直接指向该视图控制器。
在当前类的头文件中,创建一个类似以下的属性:

@property (strong, nonatomic) MyStops *myStopsVC;

注意:
如果您当前的ViewController已从strong呈现,则将weak更改为MyStops。但是,如果要从此vc推送/显示MyStops,则将其保留为strong指针。

07-26 09:34