【问题标题】:Ipad multiple detail views with navigation带导航的 Ipad 多个详细视图
【发布时间】:2012-06-20 05:44:04
【问题描述】:

对于我的 ipad 应用程序,我有这样的要求

对于根视图中的每一行,我想显示不同的详细视图和

详细视图有一些按钮点击它会显示另一个视图(详细视图需要在导航控制器下)

谁能给我满足这个要求的教程/示例代码/视频?

我在这里尝试了 20 多个类似的问题并搜索了 youtube,但都没有运气。

我有一个链接http://kshitizghimire.com.np/uisplitviewcontroller-multipledetailviews-with-navigation-controller/,但是当我们在纵向模式下选择一行时,弹出框没有被隐藏。

任何帮助将不胜感激。

谢谢。

PS:我的要求是这样的

根视图 |— 选项 1 |—(用户导航控制器) | |OPT1_DETAILVIEW | |– OPT1_DRILLDOWNVIEW1 | |–OPT1_DRILLDOWNVIEW2 | |–等 |— 选项 2 |—(用户导航控制器) | |OPT2_DETAILVIEW | |– OPT2_DRILLDOWNVIEW1 | |–等 |— 选项 3 等

【问题讨论】:

    标签: iphone ipad uisplitviewcontroller detailview


    【解决方案1】:

    我的项目也遇到了这个问题。我使用以下代码完成了此操作

    您需要做的是,当您点击根视图控制器的 tableview 的任何单元格时,您必须加载适当的视图控制器。

    您必须在根视图控制器的 tableview 的 tableViewDidSelectRowaAtIndexPath 部分编写以下代码。

    - (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
        //Load previous controllers array.
    
        NSMutableArray *viewControllerArray=[[NSMutableArray alloc] initWithArray:splitViewController.viewControllers]; 
    
        //Remove last Detail View controller Object.
    
        [viewControllerArray removeLastObject];
    
        // Check appropirate row value.
    
        if (indexPath.row == 0) {
            // Add new Detail controller in your array ...
            FirstViewController *fvc=[[[FirstViewController alloc] initWithNibName:@"FirstViewController"  bundle:nil] autorelease];        
            [viewControllerArray addObject:fvc];
        }
        else if (indexPath.row == 1) {
            // Add new Detail controller in your array ...
            SecondViewController *svc=[[[SecondViewController alloc] initWithNibName:@"SecondViewController"  bundle:nil] autorelease];        
            [viewControllerArray addObject:svc];
        }
        // And so on..
    
        // Set New View Controllers of SplitViewController
    
        [splitViewController setViewControllers:viewControllerArray];   
        [viewControllerArray release];      
    }
    

    我做到了,它奏效了。我希望它会有所帮助。

    【讨论】:

    • 但我认为存在内存泄漏,因为当用户点击它们时也会不断添加对象,如何使详细视图控制器成为基于导航的,即能够推送视图
    • 在我们创建和释放对象时可能没有泄漏。要制作基于导航的详细视图,您可以将 UINavigationController 放在 NIB 文件中,也可以在初始化视图控制器时添加它。
    • 创建导航控制器。 UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:fvc]; [navController 发布];
    • 创建导航控制器。 UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:fvc];并将这个 navController 添加到数组 [viewControllerArray addObject:navController];并释放它 [navController release];
    • 感谢尼尔,如果你有时间可以看看kshitizghimire.com.np/wp-content/uploads/2011/01/… 并告诉我这是否很好用,还看看你是否可以修复弹出窗口不被隐藏在详细视图中代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    相关资源
    最近更新 更多