我遇到的问题是将我的视图控制器从放入viewController而不是TableViewController的tableview中推出。
我在这里找到了一个解决方案
pushViewController is not pushing
问题是..我已经完成了他的解决方案,我的观点仍然没有推动。我通过ctrl + drag将我的tableview连接到视图控制器并设置了dataSource和delegate。在我提到的帖子中,他们说解决方案是“从tableview创建一个引用插座到视图控制器。”但我不知道这意味着什么。所以对此的帮助也会很好。我跟着this tutorial,显然是坚持第9步。
未触发的代码行是
[self.navigationController pushViewController:facility animated:YES];
我的代码如下......
viewTable方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"list Size: %@",list);
return [list count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = (UITableViewCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
CustomerListData *customer = [self.list objectAtIndex:indexPath.row];
cell.textLabel.text = customer.facilityName;
// cell.textLabel.text = @"Detail";
return cell;
}
-(void)setValue:(NSMutableArray*)array
{
//NSMutableArray *newArray = [[NSMutableArray alloc] init];
list = array;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
FacilityMissionListViewController *facility = [self.storyboard instantiateViewControllerWithIdentifier:@"facilityMissionList"];
[self.navigationController pushViewController:facility animated:YES];
//UINavigationController* navController = self.navigationController;
}
最后一个注释掉的行是检查navigationcontroller是否为null。事实并非如此。
从我收集的问题来看,这里的问题在于表视图位于视图控制器内部,而不是“tableviewcontroller”。如果是这种情况,这种方法显然有效,但如果不是这样的话,必须采取其他一些步骤......但我不了解它们。
提前致谢。
答案 0 :(得分:0)
放一个:
NSLog(@"%@", self.navigationController);
在您的didSelectRowAtIndexPath方法中,您将看到是否正在调用该方法以及navigationController是否为nil。可能是其中一种情况。
否则确保FacilityMissionListViewController也不是nil。
答案 1 :(得分:0)
听起来您的NavigationController设置不正确。你可以发布设置它的代码吗?