我在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;
}
有没有更好的方法来初始化表格?或者上述模式是否常见?
答案 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];