네, 그렇게 할 수는 있습니다 만, 마스터와 디테일을위한 별도의 뷰 컨트롤러를 생성해야합니다. 새 프로젝트를 분할 뷰 컨트롤러로 만들고 xib에서 분할 뷰를 제거하여 코드에서 분할 뷰를 생성합니다.
- (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=[[DetailViewController alloc]init];
UINavigationController *rootNav=[[UINavigationController alloc]initWithRootViewController:rootViewController];
UINavigationController *detailNav=[[UINavigationController alloc]initWithRootViewController:detailViewController];
// Add the split view controller's view to the window and display.
self.splitViewController.viewControllers=[NSArray arrayWithObjects:rootNav,detailNav,nil];
self.splitViewController.delegate=detailViewController;
[self.window addSubview:self.splitViewController.view];
[self.window makeKeyAndVisible];
return YES;
}
여기서 rootviewcontroller는 ur form이고 detail view controller는 ur form 2입니다.
자세히보기 컨트롤러 ie 두 개의 클래스 생성 클래스 변수 SplitViewAppDelegate * appDelegate; // id 위젯 위임 변수 변수를 설정하고 합성합니다.
UR 형태 두
- (void)viewDidLoad {
self.appDelegate = (SplitViewAppDelegate *)[[UIApplication sharedApplication] delegate];
}
에서 다음
및 UR 형태 세
- (IBAction)pushViewController:(id)sender{
NSLog(@"%@",self.appDelegate.splitViewController.viewControllers);
RootLevel1 *rootLevel1 =[[RootLevel1 alloc]init];//create form 1 root vc and assign form 1 vc
DetailLevel1 <UISplitViewControllerDelegate>*detailLevel1=[[DetailLevel1 alloc]init];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
initWithTitle: @"Home"
style:UIBarButtonItemStylePlain
target:self
action:@selector(home)];
rootLevel1.navigationItem.leftBarButtonItem=backButton;
[self.appDelegate.splitViewController viewWillDisappear:YES];
[[self.appDelegate.splitViewController.viewControllers objectAtIndex:0] pushViewController:rootLevel1 animated:YES];
[[self.appDelegate.splitViewController.viewControllers objectAtIndex:1] pushViewController:detailLevel1 animated:YES];
self.appDelegate.splitViewController.delegate = detailLevel1;
[self.appDelegate.splitViewController viewWillAppear:YES];
}
추진 최종적하면서 뷰 컨트롤러
-(void)home {
[self.splitViewController viewWillDisappear:YES];
[[self.appDelegate.splitViewController.viewControllers objectAtIndex:0]popViewControllerAnimated:YES];
[[self.appDelegate.splitViewController.viewControllers objectAtIndex:1]popViewControllerAnimated:YES];
UIViewController <UISplitViewControllerDelegate>*viewController=[[self.appDelegate.splitViewController.viewControllers objectAtIndex:1] visibleViewController];
self.splitViewController.delegate=viewController;
[self.splitViewController viewWillAppear:YES];
}
을 저런 애 대해 적절히 UR splitview의 delgeate 세트.
몇 가지 코드를 보여 주면 도움이 될 것입니다. "그것은 FormNavigationController에 FormThreeViewController를 푸시하고 FormTwoViewController는 masterNavigationController 스택에 푸시됩니다." 정확히 어떻게하는지 알고있는 것이 중요합니다. popover 버튼에 관해서는, 분할 뷰 컨트롤러의 델리게이트를 구현하는 것은 당신에게 달려 있습니다. 너니? – matt