init UITableViewController的常用方法

时间:2014-09-16 19:47:01

标签: objective-c

我在init我的桌子上使用以下内容。

# 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;
}

有没有更好的方法来初始化表格?或者上述模式是否常见?

1 个答案:

答案 0 :(得分:0)

应该由AppDelegate完成的唯一想法是启动初始视图控制器并响应委托方法。不要将您的模型放入AppDelegate。我会在textToPutInTable的初始化方法中定义ItemsViewController

编辑: 我会做这样的事情:

@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];