0

我正在 Xcode 4.3.2 中尝试以下操作。我创建了一个单视图应用程序。我的ViewController工具UITableViewDelegateUITableViewDataSource

ViewController.m

UITableView *tv = [[UITableView alloc] initWithFrame:CGRectMake(0, 10, 120, 100)
                                               style:UITableViewStylePlain];
tv.delegate = self;
tv.dataSource = self;

[self.view addSubview:tv];   

我实现了numberOfSectionsInTableView,numberOfRowsInSection和. 它工作正常,并在两行中​​显示“欢迎”。但是,如果我将创建放在 init 中,则它不起作用。cellForRowAtIndexPathdidSelectRowAtIndexPathUITableView

- (id)init
{
    self = [super init];
    if (self) {
        UITableView *tv = [[UITableView alloc] initWithFrame:
            CGRectMake(0, 10, 120, 100) style:UITableViewStylePlain];
        tv.delegate = self;
        tv.dataSource = self;
        [self.view addSubview:tv];
    }

    return self;
}
4

1 回答 1

0

两件事情:

  • 如果您从 xib 文件或情节提要加载,则使用的初始化程序是initWithCoder:.

  • 视图控制器的视图在需要时才会加载,这意味着viewDidLoad:而不是任何 init... 方法。(虽然,viewDidLoad:是由对属性的引用触发的view。)

于 2012-08-14T16:04:45.183 回答