Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在DetailView(情节提要)中具有多个视图控制器的UISplitView_Ios_Uisplitviewcontroller_Xcode Storyboard_Detailview_Uisplitview - Fatal编程技术网

Ios 在DetailView(情节提要)中具有多个视图控制器的UISplitView

Ios 在DetailView(情节提要)中具有多个视图控制器的UISplitView,ios,uisplitviewcontroller,xcode-storyboard,detailview,uisplitview,Ios,Uisplitviewcontroller,Xcode Storyboard,Detailview,Uisplitview,我正在寻找一种在DetailView(UISplitView的右视图)中具有多个ViewController的UISplitView的解决方案 苹果的例子运行良好,但使用nib文件而不是故事板。() 我发现了另一个示例,但在实现UITableView时存在空白 在寻找答案的过程中,我发现许多人都有同样的问题。我自己想出来的,所以这是我的解决方案。我希望它对其他人有用 步骤1。创建SplitViewController项目。如果您已有项目,请跳过此步骤;) 第2步。 添加两个不同的ViewCon

我正在寻找一种在DetailView(UISplitView的右视图)中具有多个ViewController的UISplitView的解决方案

苹果的例子运行良好,但使用nib文件而不是故事板。()

我发现了另一个示例,但在实现UITableView时存在空白

在寻找答案的过程中,我发现许多人都有同样的问题。我自己想出来的,所以这是我的解决方案。我希望它对其他人有用

步骤1。创建SplitViewController项目。如果您已有项目,请跳过此步骤;)

第2步。 添加两个不同的ViewController。在这种情况下,我称它们为AbcViewController和XyzViewController。

第3步。 转到ipad情节提要,从情节提要中删除DetailViewController。然后添加两个新的ViewController

第4步。 设置ViewController的类和情节提要ID。

第5步。 转到MasterViewController.h并用以下代码替换代码

#import <UIKit/UIKit.h>

@class AbcViewController;
@class XyzViewController;

@interface MasterViewController : UITableViewController

@property (strong, nonatomic) AbcViewController *abcViewController;
@property (strong, nonatomic) XyzViewController *xyzViewController;

@end
第7步。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        self.abcViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ABC"];
        self.xyzViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"XYZ"];

        if (indexPath.row == 0) {
            NSArray *newVCs = [NSArray arrayWithObjects:[[[self splitViewController ] viewControllers ] firstObject ] , self.abcViewController, nil];
            self.splitViewController.viewControllers = newVCs;
        }
        if (indexPath.row == 1) {
            NSArray *newVCs = [NSArray arrayWithObjects:[[[self splitViewController ] viewControllers ] firstObject ] , self.xyzViewController, nil];
            self.splitViewController.viewControllers = newVCs;
        }
    }

就这样,运行您的项目并享受:)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        self.abcViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ABC"];
        self.xyzViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"XYZ"];

        if (indexPath.row == 0) {
            NSArray *newVCs = [NSArray arrayWithObjects:[[[self splitViewController ] viewControllers ] firstObject ] , self.abcViewController, nil];
            self.splitViewController.viewControllers = newVCs;
        }
        if (indexPath.row == 1) {
            NSArray *newVCs = [NSArray arrayWithObjects:[[[self splitViewController ] viewControllers ] firstObject ] , self.xyzViewController, nil];
            self.splitViewController.viewControllers = newVCs;
        }
    }