2015-10-06 39 views
0

在我的主視圖中,我想創建一個帶有一些數據的tableView。以編程方式創建TableView時未顯示

爲此,當從第二個視圖中選擇tableView中的一行時,它應該在main中創建tableView。

enter image description here

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

屏幕快照將是有益的。一個細胞是否被創造或根本沒有? –

+0

你走了,我加了一張照片!什麼都沒有創建:S –

+0

你爲什麼要調用view在makeView上加載?你沒有viewcontroller.h和.m文件? –

回答

1

你需要移動makeView方法到您的viewDidLoad方法中調用該方法。這將讓應用程序的生命週期過程接管初始化視圖框架,並在準備就緒時可以設置視圖。

OpenTableView.m

ViewController *vc = [[ViewController alloc] init]; 

內的viewDidLoad方法新視圖控制器時,你應該編程設置的任何意見,並將它們添加到主視圖。

ViewController.m

- (void) viewDidLoad(...){ 
    [super viewDidLoad:...]; 
    [self makeView]; 
} 
1
  1. 時,必須出示視圖控制器
  2. makeView需要加載後查看
相關問題