我对如何实现简单的基于uitableview的菜单感到困惑。在Kayak应用程序中http://www.sendspace.com/file/igv31p 我的故事板看起来像这样:导航控制器--->主视图控制器 - >细节视图控制器。在主视图控制器中,我有一个表视图。我用4个单元格动态填充它,这些单元格是产品,商店,包裹和财务。我想做的就是显示将成为子uiviewcontroller的子uiviewcontroller。像这样的东西: 产品 - >具有特定功能的UiViewController 商店 - >其他具有特定功能的UIViewControlelr ......等等。
我创建了didselectrowatindex方法 并尝试使用pushViewController做一些事情,如下面的代码方法,但它不起作用。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
StoresViewController *storeView = [[StoresViewController alloc]init];
switch (indexPath.section) {
case 0:
switch (indexPath.row) {
case 0:
{
NSLog(@"Products");
}
break;
case 1:{
[self.navigationController pushViewController:storeView animated:YES];
NSLog(@"Stores");
}
break;
case 2:{
NSLog(@"Packages");
}
break;
case 3:{
NSLog(@"Finances");
}
break;
}
break;
default:
break;
}
如果有人能帮我理解,我将不胜感激。如果之前询问过这个问题,请告诉我在哪里:)提前致谢
像Kayak应用程序中的东西 http://www.sendspace.com/file/igv31p
答案 0 :(得分:1)
只需替换此代码..
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
switch (indexPath.section) {
case 0:
switch (indexPath.row) {
case 0:
{
NSLog(@"Products");
}
break;
case 1:
{
UINavigationController *navigationController = [self.storyboard instantiateViewControllerWithIdentifier:@"StoresViewController"];
[self presentViewController:navigationController animated:YES completion:nil];
NSLog(@"Stores");
}
break;
case 2:
{
NSLog(@"Packages");
}
break;
case 3:
{
NSLog(@"Finances");
break;
}
break;
default:
break;
}
}
答案 1 :(得分:0)
StoresViewController *storeView = [[StoresViewController alloc]initWithNibName:@"StoresViewController" bundle:nil];
在创建对象时简单地传递了笔尖。