为什么我的UITableView不能进入详细视图?

时间:2013-05-06 16:58:45

标签: iphone ios objective-c uitableview uistoryboardsegue

我想要一个标签栏控制器,然后是一个具有相应详细视图的表视图控制器。我是新手,所以我尝试结合Apple的SimpleDrillDown: http://developer.apple.com/library/ios/#samplecode/SimpleDrillDown/Introduction/Intro.html

...与Ray Wenderlich关于故事板的教程: http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

Ray's向您展示如何设置选项卡并获取第一个表视图,但之后没有向您展示如何获取详细信息视图,因此我尝试了解如何从Apple的SimpleDrillDown获取详细信息视图(没有标签栏控制器。)

我的程序运行时没有错误,但是当您单击表视图中的一行(FactSheetsViewController)时,它会保持蓝色(已选中)并且永​​远不会转到我的FactSheetsDetailViewController。如果我在这个方法的表视图类中放置一个断点:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if ([[segue identifier] isEqualToString:@"DisplaySelectedFactSheet"]) {   
        NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow];
        FactSheetsDetailViewController *detailViewController = [segue destinationViewController];
        detailViewController.factSheet = [dataController objectInListAtIndex:selectedRowIndex.row];     
    }
}

当我运行程序并单击一个单元格时,永远不会达到断点。

我不确定要发布的其他代码,因为我不确定我做错了什么。我想知道我的AppDelegate中是否错误地初始化了东西?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
    UINavigationController *navigationController = [[tabBarController viewControllers] objectAtIndex:0];   
    FactSheetsViewController *factSheetsViewController = [[navigationController viewControllers] objectAtIndex:0];   
    DataController *controller = [[DataController alloc] init];
    factSheetsViewController.dataController = controller;
    self.dataController = controller;

    return YES;
 }

或者,如果我没有以某种方式在故事板中正确设置。我将标识符从FactSheetsViewController设置为我的segue,将属性检查器中的“FactSheetsDetailView”设置为“DisplaySelectedFactSheet”。

如果有帮助,我很乐意发布更多细节 - 请告诉我!谢谢。

1 个答案:

答案 0 :(得分:1)

在Xcode中,您需要在表格单元格(原型)和FactSheetsDetailViewController之间创建一个segue。然后,同样在Xcode中,将segue名称编辑为DisplaySelectedFactSheet