Ios 数组+;UIView控制器+;表格控制器

Ios 数组+;UIView控制器+;表格控制器,ios,objective-c,Ios,Objective C,我有一个UIViewController类和一个UITableViewController类。在UIViewController类中,我有一个NSMutableArray 现在,我遇到了如何将数据加载到我的表视图(一个单独的类)的问题,我必须访问用于填充以前的UIViewController类的NSMutableArray 我尝试使用委托访问UIViewControllerClass中的数组,但是该数组有“0个对象”,并且NULL 我希望能在这里得到正确方向的指导 在UITableViewCon

我有一个
UIViewController
类和一个
UITableViewController
类。在
UIViewController
类中,我有一个
NSMutableArray

现在,我遇到了如何将数据加载到我的表视图(一个单独的类)的问题,我必须访问用于填充以前的
UIViewController
类的
NSMutableArray

我尝试使用委托访问
UIViewControllerClass
中的数组,但是该数组有“0个对象”,并且
NULL


我希望能在这里得到正确方向的指导

UITableViewController
类上创建一个
NSMutableArray
属性,如下所示:

@interface CustomTableViewController : UITableViewController

@property (strong, nonatomic) NSMutableArray *dataFromOtherClass;

@end
然后,当您进行转换时,可能是这样,您可以设置
dataFromOtherClass
属性:

CustomTableViewController *controller = [[CustomTableViewController alloc] initWithNibName:@"CustomTableViewController" bundle:nil];

controller.dataFromOtherClass = myNSMutableArrayData; // <-- Set data like this        

[self.navigationController controller animated:YES];

// Or ...
[self presentViewController:controller animated:YES];

// Etc...
CustomTableViewController*控制器=[[CustomTableViewController alloc]initWithNibName:@“CustomTableViewController”捆绑包:nil];

controller.dataFromOtherClass=myNSMutableArrayData;// 您可以让一个视图控制器保存对另一个视图控制器的引用,并在其上查询公共
NSMutableArray
。Aaron建议这样做,这可能是你最好的解决方案

或者。。您有多个视图控制器试图访问同一组数据。可能还有其他类也希望访问此数据。您可能需要考虑将数据从视图控制器中拔出,并将其存储在中性位置。您可以将其存储在
AppDelegate
中,然后从您需要的任何位置引用app委托

id<UIApplicationDelegate> appDelegate = [UIApplication sharedApplication].delegate;
NSMutableArray *myData = appDelegate.data;
id appDelegate=[UIApplication sharedApplication]。委托;
NSMutableArray*myData=appDelegate.data;

您还可以考虑将数据的所有逻辑和数据本身分成一个单独的类,它允许您从任何地方访问/操作数据。p>


最后两种方法将数据与用户界面控制器对象隔离,并防止可能不相关的对象需要保存彼此的引用。如果使用得当,它将降低代码复杂性,并使将来的更改更易于管理。

关于将数据从一个视图控制器传递到另一个视图控制器,这里存在许多问题。请搜索一下。看见