내가하려는 것은 가능하지만 원하는 결과가 없기 때문에 나는 모릅니다.
내가 뭘 해야하는지 그리고 presentViewController를 사용하여 이전 ViewController에서 SplitViewController를 호출해야합니다.
SplitViewController는 rootViewController가되어야하지만, 내가해야 할 일을 성취하기 위해 가능한 가장 가능한 옵션을 찾아야합니다.
버튼이있는 MainMenu가 있고 버튼마다 SplitViewController를 호출해야합니다. 첫째, 어떻게 할 수 있습니까?
난 할 노력하고있어입니다 : 먼저, AppDelegate에에서 나는 MAINMENU를 호출하고있어, 및 하위 뷰와 다른 것들로 추가 : 내가 호출있어 MAINMENU에,presentModalViewController를 사용하여 SplitViewController를 표시 할 수 있습니까?
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[window addSubview:self.mainMenu.view];
[self.mainMenu presentModalViewController:self.firstMenu animated:NO];
[self.window makeKeyAndVisible];
return YES;
}
다음 SecondViewController는 모달 뷰에서이 코드를 사용 :
-(void)viewDidLoad{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
UISplitViewController *splitViewController = [[UISplitViewController alloc]init];
SecondMenuViewController *secMenu = [[SecondMenuViewController alloc]init];
UINavigationController *navLef = [[UINavigationController alloc]init];
[navLef pushViewController:secMenu animated:NO];
SecondMainViewController *secMain = [[SecondMainViewController alloc]init];
UINavigationController *navRig = [[UINavigationController alloc]init];
[navRig pushViewController:secMain animated:NO];
splitViewController.delegate = secMain;
splitViewController.viewControllers = [NSArray arrayWithObjects:navLef, navRig, nil];
MainAppDelegate *mainApp = [[MainAppDelegate alloc]init];
[mainApp changeRootViewController:splitViewController];
navRig = nil;
navLef = nil;
secMain = nil;
secMenu = nil;
splitViewController = nil;
}
012 :이 SecondViewController에서
SecondViewController *secV = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
secV.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:secV animated:YES];
을,이 코드를 사용하여, 마스터 & DetailViewController의로, SplitViewController을 만드는거야
SplitViewController는 RootViewController 여야하기 때문에 MainAppDelegate의 메서드를 호출하여 뷰와 RootViewController를 변경합니다.
내가 아는-(void)changeRootViewController:(UISplitViewController *)splitViewController{
[self.window addSubview:splitViewController.view];
self.window.rootViewController = splitViewController;
}
는,이 엉망처럼 보인다 :이 방법이다. 그리고 내가 실행할 때 SplitViewController는 결코 보여주지 않습니다. 그래서 내가하려고하는 것은 불가능합니다. 아니면 내가 틀린거야? 이것이 전부라면 MainViewController 다음에 SplitViewController를 표시하려면 어떻게해야합니까? 내가 XCode4.4 및 iOS5를 을 사용하고
는 application:didFinishLaunchingWithOptions:
에 UISplitViewController
루트 뷰 컨트롤러를 만드는 것이 당신에게
감사합니다 ...이 옵션은 빠르고 유용하게 보입니다. 이미 테스트했지만, 이제는 2 가지 문제가 있습니다. 첫 번째는 내 MainMenu에서보기를 "저장"해야한다는 것입니다. 왜냐하면 돌아갈 필요가있을 때 MainMenu에서 마지막 옵션을 표시해야하기 때문입니다. 내 UIView 복사 할 수 없기 때문에 제거하고 다시 할당하기 전에 다른 UIView 내보기를 복사하려고했지만 아무 일도 발생하지 않습니다. 두 번째 문제는 시뮬레이터를 회전 할 때 self.firstMenu가 회전하지 않는다는 것입니다. self.firstMenu는 버튼/옵션이있는보기입니다. – user1600801