适用于iPad的Master Detail应用程序 [英] Master Detail Application for iPad

查看:112
本文介绍了适用于iPad的Master Detail应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用带有ARC的XCode 4.5创建一个iPad版的Master Detail Application。
我有我的iPadMaster.h / .m(作为我的主人)和iPadDetailViewController.h / m(作为我的细节)设置。

I am creating an iPad version of Master Detail Application using XCode 4.5 with ARC. I have my iPadMaster.h/.m(as my master) and iPadDetailViewController.h/m(as my detail) set up.

我正在尝试用户在iPadMaster上单击/选择行时从iPadDetailViewController加载不同的视图控制器。

I am trying to load different view controllers from iPadDetailViewController when users click/select the rows on iPadMaster.

我在iPadMaster.m上设置了这个:

I set this on iPadMaster.m at:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    iPadDetailViewController * DVC = [[iPadDetailViewController alloc]initWithNibName:nil bundle:nil];
    DVC.itemNumber = indexPath.row;
}

并在上的iPadDetailViewController.m上尝试了这个愚蠢的特技表演[viewDidLoad]

switch(_itemNumber)
    {

        case 0:
        {
            //Detail row
            vc1 *viewController = [[vc1 alloc] init];
            [self presentViewController:viewController animated:YES completion:nil];
            break;
        }
        case 1:
        {
            //Report row
            vc2 *viewController = [[vc2 alloc] init];
            //viewController.somePassedInData = theDataToPass;
            [self presentViewController:viewController animated:YES completion:nil];
            break;
        }
        case 2:
        {
            //Report row
            vc3 *viewController = [[vc3 alloc] init];
            //viewController.somePassedInData = theDataToPass;
            [self presentViewController:viewController animated:YES completion:nil];
            break;
        }

        ...
        case 9:
        {
            //Report row
            vc9 *viewController = [[vc9 alloc] init];
            //viewController.somePassedInData = theDataToPass;
            [self presentViewController:viewController animated:YES completion:nil];
            break;
        }
        default:
        {
            break;
        }

在iPhone上我只会在<$ c中抹上'开关盒' $ c> - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 但是我迷失了iPad环境......

On iPhone i would just plaster the 'switch cases' in the - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath but i'm at lost with iPad environment...

提前使用Thanx ...

Thanx in advance...

推荐答案

拆分视图控制器有一个属性viewControllers。索引1处的对象是细节控制器。您应该只创建一个viewControllers的可变副本,将索引1处的对象替换为新控制器,并将该数组设置为拆分视图的arrayControllers。

The split view controller has a property, viewControllers. The object at index 1 is the detail controller. You should just create a mutable copy of viewControllers, replace the object at index 1 with your new controller, and set that array to be the split view's arrayControllers.

NextController *next = [[NextController alloc] init..... // or however you get your new controller
NSMutableArray *mut = [self.splitViewController.viewControllers mutableCopy];
[mut replaceObjectAtIndex:1 withObject:next];
self.splitViewController.viewControllers = mut;

这篇关于适用于iPad的Master Detail应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆