Ios 在DetailView(情节提要)中具有多个视图控制器的UISplitView
我正在寻找一种在DetailView(UISplitView的右视图)中具有多个ViewController的UISplitView的解决方案 苹果的例子运行良好,但使用nib文件而不是故事板。() 我发现了另一个示例,但在实现UITableView时存在空白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
在寻找答案的过程中,我发现许多人都有同样的问题。我自己想出来的,所以这是我的解决方案。我希望它对其他人有用 步骤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;
}
}