Ios 在Objective-C中将阵列从局部视图控制器访问到主视图控制器
因此,我已经在详细视图控制器、分配数据等中创建了NSMutablearray,但我只是想知道如何在主视图控制器中访问它?这是我第一次使用表视图等,所以我对它一无所知Ios 在Objective-C中将阵列从局部视图控制器访问到主视图控制器,ios,objective-c,Ios,Objective C,因此,我已经在详细视图控制器、分配数据等中创建了NSMutablearray,但我只是想知道如何在主视图控制器中访问它?这是我第一次使用表视图等,所以我对它一无所知 谢谢您需要使用指定的初始值设定项将NSMutableArray传递给Viewcontroller 在ViewController.m和.h中创建指定的初始化器 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil WithAr
谢谢您需要使用指定的初始值设定项将NSMutableArray传递给Viewcontroller 在ViewController.m和.h中创建指定的初始化器
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil WithArr:(NSMutableArray*)arr
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
self.arrTaskList=arr;
}
return self;
}
与创建viewcontroller对象时的DetailViewController类似
ViewController* vc=[ViewController alloc]initWithNibName:@"ViewController" bundle:@"" Arrr:self.arr];
通常模式是相反的,您在主视图控制器中创建对象,并将指向特定项的指针从此VC传递到详细VC。然而,这只是最常见的模式,如果你认为合适,你所做的可能是正确的 通常,细节VC通过委托将数据返回给主VC。这里有数百个关于如何做的教程和问题,我会复制粘贴一个教程。但简而言之,这些步骤是:
id
的实例变量,它指向委托另一种可能是使用通知让主VC知道细节VC发生了变化。有一些方法可以做到这一点 其中之一是: 将
NSMutableArray
设置为视图控制器上的属性。然后,在局部视图控制器上为视图控制器本身设置属性
视图控制器界面
@property (nonatomic, strong) NSMutableArray *mutableArray;
@property (nonatomic, strong) ViewController *viewController;
详细视图控制器界面
@property (nonatomic, strong) NSMutableArray *mutableArray;
@property (nonatomic, strong) ViewController *viewController;
然后,在ViewController上,在按下DetailViewController之前,将其ViewController
属性设置为self
detailViewController.viewController = self;
然后,在DetailViewController上,将viewController.mutableArray
属性设置为刚创建的新数组
您可以在视图将消失方法上执行此操作
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
self.viewController.mutableArray = _myNewlyCreatedMutableArray;
}
因此,当您回到ViewController时,只需访问self.mutableArray
,您就可以获得在详细视图上创建的数组。如果您对表视图一无所知,如您所说,那么请阅读苹果的“iOS表视图编程指南”。这会给你一个好的开始。你一定要看这个pdf,它一定会帮助你启动你的ios开发,它对你的问题有一个答案,我会查出来的