添加TableView子视图崩溃的应用程序

问题描述:

我想添加一个tableview,所以当有人按下某个按钮时,视图会切换到几个选择的tableview。添加TableView子视图崩溃的应用程序

这里是我的按钮代码:

LevelChoice.h 代码:

@interface LevelChoice : UITableViewController { 
    NSArray *choices; 
} 

LevelChoice

-(IBAction)buttonPressed:(id)sender 
    { 
     LevelChoice *level = [[LevelChoice alloc] initWithNibName:nil bundle:nil]; 
     [self.view addSubview:level.view]; 
     [level release]; 
    } 

这里是代码从我的UITableViewController的子卡.m

代码:

-(void)viewDidLoad 
{ 
    choices = [[NSArray alloc] initWithObjects:@"Level 1", @"Level 2", @"Level 3", nil]; 

    [super viewDidLoad]; 

} 

代码:

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; 
} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

{ 
    return 3; 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

{ 
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) 
    { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 

    } 
    cell.text = [choices objectAtIndex:indexPath.row]; 
    return cell; 

} 

有谁知道我错过了什么?

+0

尝试删除此代码[level release];并看看它是否有效。 – Robin

+1

我认为罗宾已经说得对,不要释放控制器。同样为了呈现一个桌面视图,你必须保留它的控制器。因此,您可以将控制器作为模态视图呈现,您也可以将其释放。但是,由于您只是呈现应用程序崩溃的视图。 –

+0

错误信息是什么样的? – tilo

区分控制器和视图。您可以

  1. 无论是目前的UITableViewControllerpresentModalViewController:animated:pushViewController:animated:。 (是的,在这种情况下,你可以释放它。)
  2. 或者只是在你现有的视图控制器中保留一个UITableView,并根据需要使用hidden属性显示或隐藏它。当然,您需要实施表格的datasourcedelegate方法。