在我的主视图中,我想创建一个包含一些数据的tableView。
为此,当您从第二个视图中选择tableView中的一行时,应该在main中创建tableView。
OpenTableView.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
ViewController *vc = [[ViewController alloc] init];
[vc makeView];
}
ViewController.m
- (void)makeView
{
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 64, 700, 704) style:UITableViewStylePlain];
self.tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.backgroundColor = [UIColor blackColor];
[self.view addSubview:self.tableView];
[self.tableView reloadData];
[self viewDidLoad];
}
为什么这不起作用? 如果您需要更多细节或图片,请询问。 在此先感谢你们所有人。
答案 0 :(得分:1)
答案 1 :(得分:1)
您需要将makeView方法移动到viewDidLoad方法中。这将使应用程序的生命周期过程接管初始化视图框架,当它准备就绪时,您可以设置视图。
<强> OpenTableView.m 强>
ViewController *vc = [[ViewController alloc] init];
在viewDidLoad方法的新视图控制器中,您应该以编程方式设置任何视图并将其添加到主视图中。
<强> ViewController.m 强>
- (void) viewDidLoad(...){
[super viewDidLoad:...];
[self makeView];
}