Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 初始化UITableViewController的常用方法_Objective C - Fatal编程技术网

Objective c 初始化UITableViewController的常用方法

Objective c 初始化UITableViewController的常用方法,objective-c,Objective C,我正在使用以下命令初始化我的表 # AppDelegate.m NSArray *textToPutInTable = @[@"Row One", @"Row More Than One", @"Row Hello!"]; ItemsViewController *itemsViewController = [[ItemsViewController alloc] initWithTextToPutInTable:textToPutInTable]; self.win

我正在使用以下命令初始化我的表

# AppDelegate.m
NSArray *textToPutInTable = @[@"Row One", @"Row More Than One", @"Row Hello!"];
ItemsViewController *itemsViewController = 
             [[ItemsViewController alloc] initWithTextToPutInTable:textToPutInTable];
self.window.rootViewController = itemsViewController;

# ItemsViewController.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell" forIndexPath:indexPath];
    cell.textLabel.text = self.textToPutInTable[indexPath.row];
    return cell;
}

有更好的初始化表的方法吗?或者上述模式在这样做时很常见?

AppDelegate应该做的唯一一件事是启动初始视图控制器并响应委托方法。不要将您的模型放入AppDelegate。我将在ItemsViewController的init方法中定义textToPutInTable

编辑: 我会这样做:

@interface ItemsViewController () 
@property (nonatomic, strong) NSArray *textToPutInTable;
@end

@implementation

- (instancetype)init {
    if ((self = [super init])) {
        _textToPutInTable = @[@"Row One", @"Row More Than One", @"Row Hello!"];
    }
    return self;
}
在AppDelegate中:

self.window.rootViewController = [[ItemsViewController alloc] init];

AppDelegate应该做的唯一一件事是启动初始视图控制器并响应委托方法。不要将您的模型放入AppDelegate。我想在ItemsViewController的init方法中定义textToPutInTable。我明白了-你能在回答中告诉我这一点吗?你的意思是用比数组更好的方式来表示表视图后面的数据吗?通常不会。数组的初始化时间和方式取决于数据源、时间等。谢谢,那么我应该如何进行上述初始化,将所有代码放在ItemsViewController中?