【问题标题】:UISplitViewController with multiple Detail View ControllerUISplitViewController 与多个细节视图控制器
【发布时间】:2013-02-27 04:46:07
【问题描述】:

我正在制作一个 splitView 应用程序,我想要不同的细节视图控制器,我研究了很多使用苹果 MultipleDetailView 控制器,但它没有被完全采用,所以任何人都可以使用它,所以有什么方法可以得到这个完成对所有人来说意味着不同的 detailViewController。

【问题讨论】:

    标签: iphone xcode ipad uisplitviewcontroller


    【解决方案1】:

    嗨,Nazia 我刚刚从http://kshitizghimire.com.np/uisplitviewcontroller-multipledetailviews-with-navigation-controller/找到了解决方案

    你可以这样做:-

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    
        // Override point for customization after app launch.
            self.splitViewController =[[UISplitViewController alloc]init];
        self.rootViewController=[[RootViewController alloc]init];
        self.detailViewController=[[FirstDetailViewController alloc]init];
    
        UINavigationController *rootNav=[[UINavigationController alloc]initWithRootViewController:rootViewController];
        UINavigationController *detailNav=[[UINavigationController alloc]initWithRootViewController:detailViewController];
    
        self.splitViewController.viewControllers=[NSArray arrayWithObjects:rootNav,detailNav,nil];
        self.splitViewController.delegate=self.detailViewController;
    
        // Add the split view controller's view to the window and display.
        [window addSubview:self.splitViewController.view];
        [window makeKeyAndVisible];
    
        return YES;
    }
    
     -(void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
        /*
         When a row is selected, set the detail view controller's detail item to the item associated with the selected row.
         */
        NSUInteger row = indexPath.row;
        [self.appDelegate.splitViewController viewWillDisappear:YES];
        NSMutableArray *viewControllerArray=[[NSMutableArray alloc] initWithArray:[[self.appDelegate.splitViewController.viewControllers objectAtIndex:1] viewControllers]];
        [viewControllerArray removeLastObject];
    
        if (row == 0) {
            self.firstDetailViewController=[[[FirstDetailViewController alloc] init]autorelease];
            [viewControllerArray addObject:self.firstDetailViewController];
            self.appDelegate.splitViewController.delegate = self.firstDetailViewController;
    
        }
    
        if (row == 1) {
            self.secondDetailViewController=[[[SecondDetailViewController alloc]init]autorelease];
            [viewControllerArray addObject:self.secondDetailViewController];
            self.appDelegate.splitViewController.delegate = self.secondDetailViewController;
        }
        [[self.appDelegate.splitViewController.viewControllers objectAtIndex:1] setViewControllers:viewControllerArray animated:NO];    
    
        [self.appDelegate.splitViewController viewWillAppear:YES];
        [viewControllerArray release];
    
     }
    

    你也可以查看这个Demo http://kshitizghimire.com.np/wp-content/uploads/2011/01/MultipleDetailViewsWithNavigator.zip

    【讨论】:

    • 两个链接现在都关闭了。你能提供另一个链接吗? @Nitin Gohel
    • 创建两个视图控制器FirstDetailViewController,SecondDetailViewController,它们是详细视图控制器。并创建一个名为 RootViewController 的 tableview 控制器。代码 -(void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { } 将在 RootViewController 上。就是这样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 2017-10-14
    相关资源
    最近更新 更多