【问题标题】:Topview Controller for UITabBarUITabBar 的 Topview 控制器
【发布时间】:2014-10-13 04:02:58
【问题描述】:

我有一个显示父文件夹详细信息的表格视图。当我选择一行时,我希望它显示相应子文件夹的内容,该文件夹有两个使用选项卡栏控制器的窗口 - 一个显示详细信息表,一个显示图表。

问题是我在topviewcontroller for uitabbar 找到的代码无法在选定的索引路径上显示内容,而是在固定索引 0 或手动输入的任何数字上显示内容。我不确定这会影响显示结果,这可能是错误的。

我的代码可以很好地在即时窗口中显示正确的内容,但链接到标签栏控制器的第二个窗口根本不显示任何内容。我已经交换了窗口和同样的问题 - 第一个窗口显示,第二个没有。

这是我准备的segue代码:

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

    if ([[segue identifier] isEqualToString:@"showFileDetails"]){

        UINavigationController * navigate = segue.destinationViewController;

        //create a reference to the index path
        NSIndexPath * indexPath = [self.tableView indexPathForSelectedRow];

        FileDetailsVC * fileDetails = (FileDetailsVC *)[navigate.viewControllers objectAtIndex: 0];

        //Create a reference to the parent folder that is being selected 
        ParentFile * selectedFile = (ParentFile*)[self.fetchedResultsController objectAtIndexPath:indexPath];

        //reference it to the the next view
        fileDetails.selectedFile = selectedFile;
    }

}

我尝试在 [navigate.viewControllers objectAtIndex: ] 中使用“indexPath”;并将 objectAtIndex 更改为 objectAtIndexPath,但是它给出了错误消息“指向整数的指针不兼容...”和“'NSArray' 没有可见的@interface 声明选择器'objectAtIndexPath'”。

希望没有什么难解决的。谢谢。

【问题讨论】:

    标签: ios objective-c iphone ipad


    【解决方案1】:

    Segue 的目标控制器是 UITabBarController 而不是 UINavigationController。您没有在另一个选项卡中为视图控制器设置任何数据源,因此您什么也看不到。

    UITabBarController * tabBarController = segue.destinationViewController;
    ViewControllerForTabItem2 * controller = (ViewControllerForTabItem2 *)[tabBarController.viewControllers objectAtIndex:1];
    controller.dataSource = selectedFile; 
    

    【讨论】:

    • 非常感谢。我还以为是这样的小事。现在工作正常。
    • 您是否知道如何通过导航到视图将 Tableview 中的详细信息通过 tabbar 传递?我想让导航控制器在那里用于另一个链接,但它会抛出错误,因为它无法识别细节。
    • 您能否更具体地说明您想要实现的目标。
    • 我想获得与这个问题完全相同的结果,但是,在两个视图之一中,我嵌入了一个导航控制器,因为它没有正确显示。它还有助于在添加按钮时将其命名为与标签栏中的第一个 vc 不同。
    • 假设您获得了名为 nav 的导航控制器,那么 nav.topViewController 就是您的 View 1 控制器。您可以将 selectedFile 设置为 View 1 控制器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多