0

我在故事板中使用表视图控制器。

我目前在我的故事板的导航控制器中嵌入了一个 tableview 控制器。这个表视图控制器链接到一个 ObjectiveC 文件。

通过代码,我可以使用 tableView didSelectRowAtIndexPath 方法显示另一个具有正确数据的表视图控制器。

代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    WorkoutType *workoutType = (WorkoutType *)[self.fetchedResultsController objectAtIndexPath:indexPath];
    WorkoutSetViewController *detailViewController = [[WorkoutSetViewController alloc] initWithWorkoutType:workoutType];

    [self.navigationController pushViewController:detailViewController animated:YES];

}

但是,如果我尝试在情节提要中添加另一个表视图控制器,将其与objectiveC 视图控制器文件相关联并将第一个TVC 连接到它,则在运行代码时不会显示该表视图控制器。

我需要直观地自定义第二个表格视图,并尝试使用 segue 推送...如下:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"show"]) {



        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

        WorkoutType *workoutType = (WorkoutType *)[self.fetchedResultsController objectAtIndexPath:indexPath];
        //WorkoutSetViewController *detailViewController = [[WorkoutSetViewController alloc] initWithWorkoutType:workoutType];
        WorkoutSetViewController *destViewController = segue.destinationViewController;
        destViewController.workoutType = workoutType;
         //[self.navigationController pushViewController:detailViewController animated:YES];


    }
}

但是当我运行这段代码时,第二个表视图控制器甚至没有加载,尽管应用程序没有崩溃。

无论我做错了什么都必须很简单,任何帮助将不胜感激。

谢谢你

4

2 回答 2

2

简单您必须浏览下面的代码。(在同一个故事板 ViewController 中工作时无需设置故事板)

(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath  
{  
    if(indexpath.row==0)//for first row click  
    {  
         WorkoutSetViewController *objWorkoutSetVC=[[WorkoutSetViewController alloc] i  nitWithNibName:@"WorkoutSetViewController" bundle:nil];  
        [self.navigationController pushViewController:objWorkoutSetVC animated:YES];  
    }  
    else if(indexpath.row==1)//for second row click  
    {  
        //Put code in which screen you have to navigate  
    }  
}  
于 2015-10-13T12:43:24.160 回答
0

不要分配初始化你的新视图控制器。请改用此代码:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
WorkoutSetViewController *detailViewController = (WorkoutSetViewController *)[storyboard instantiateViewControllerWithIdentifier:@"coolID"];
[self.navigationController pushViewController:detailViewController animated:YES];

用于MainStoryboard编写您的故事板名称和coolID您在故事板中设置的视图控制器 ID 名称。

于 2013-08-18T03:48:14.377 回答