添加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;
}
有谁知道我错过了什么?
答
区分控制器和视图。您可以
- 无论是目前的
UITableViewController
与presentModalViewController:animated:
或pushViewController:animated:
。 (是的,在这种情况下,你可以释放它。) - 或者只是在你现有的视图控制器中保留一个
UITableView
,并根据需要使用hidden
属性显示或隐藏它。当然,您需要实施表格的datasource
和delegate
方法。
尝试删除此代码[level release];并看看它是否有效。 – Robin
我认为罗宾已经说得对,不要释放控制器。同样为了呈现一个桌面视图,你必须保留它的控制器。因此,您可以将控制器作为模态视图呈现,您也可以将其释放。但是,由于您只是呈现应用程序崩溃的视图。 –
错误信息是什么样的? – tilo