, 당신의 대리인 헤더에 splitviewcontroller를 선언
당신이 detailedViewController 헤더 파일에 UISplitViewControllerDelegate을 추가하고 aswell 위임 방법이 있는지 확인하여 didfinishlaunching이 같은 것을 사용합니다. 관련 헤더 파일
을 가져 기억
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
splitViewController = [[UISplitViewController alloc] init];
rootViewController *root = [[rootViewController alloc] init];
detailedViewController *detail = [[detailedViewController alloc] init];
UINavigationController *rootNav = [[UINavigationController alloc] initWithRootViewController:root];
UINavigationController *detailNav = [[UINavigationController alloc] initWithRootViewController:detail];
splitViewController.viewControllers = [NSArray arrayWithObjects:rootNav, detailNav, nil];
splitViewController.delegate = detail;
[window addSubview:splitViewController.view];
편집 - 아래 스콧의 우수한 제안에 따라, IB ;-)
대신
[self.window setRootViewController:(UIViewController*)splitViewController]; // that's the ticket
[window makeKeyAndVisible];
return YES;
}
//detailedView delegate methods
- (void)splitViewController:(UISplitViewController*)svc
willHideViewController:(UIViewController *)aViewController
withBarButtonItem:(UIBarButtonItem*)barButtonItem
forPopoverController:(UIPopoverController*)pc
{
[barButtonItem setTitle:@"your title"];
self.navigationItem.leftBarButtonItem = barButtonItem;
}
- (void)splitViewController:(UISplitViewController*)svc
willShowViewController:(UIViewController *)aViewController
invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
self.navigationItem.leftBarButtonItem = nil;
}
나는 또한 선호, 윈도우 서브 뷰에 코드를 추가하지 않습니다
"보통 IB 프로젝트없이 프로젝트를 만듭니다." <- +1. 그것이 프로그래밍의 작동 방식입니다. 너 락! –