-1

我有一个UIViewController班级和一个UITableViewController班级。在UIViewController课堂上,我有一个NSMutableArray.

我现在有如何将数据加载到我的表视图中的问题,一个单独的类,我必须访问NSMutableArray我用来填充前一个UIViewController类的。

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

我会很感激这里正确方向的一些指导。

4

2 回答 2

1

您可以让一个视图控制器持有对另一个视图控制器的引用,并NSMutableArray在其上向公众查询数据。Aaron 提出了这个建议,这可能是你最好的解决方案。

或者..您有多个视图控制器试图访问同一组数据。您可能还有其他类也想要访问这些数据。您可能需要考虑将数据从视图控制器中提取出来,并将其放在一个中立的位置。您可以将其存储在 中AppDelegate,然后从您需要的任何地方引用应用程序代表。

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

您还可以考虑将数据的所有逻辑和数据本身放入一个单独的类中,并使用 Singleton它将允许您从任何地方相当容易地访问/操作数据。

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

于 2013-05-15T18:45:11.193 回答
0

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

@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...
于 2013-05-15T18:26:44.977 回答