【发布时间】:2011-01-21 02:54:42
【问题描述】:
我在 UISplitViewController 内的右侧视图控制器中缺少带有弹出框的 navigationItem。当我将 iPad 旋转到纵向时,按钮不会出现。代码很好,我已经多次使用同一个(当然不是绝对),但现在我遇到了这个奇怪的错误。
- (void)splitViewController:(UISplitViewController *)svc
willHideViewController:(UIViewController *)aViewController
withBarButtonItem:(UIBarButtonItem *)barButtonItem
forPopoverController:(UIPopoverController *)pc
{
barButtonItem.title = aViewController.title;
self.navigationItem.rightBarButtonItem = barButtonItem;
/*
this method gets called, class is set to be delegate of split view,
barButtonItem && self.navigationItem are not nils.
*/
}
- (void)splitViewController:(UISplitViewController *)svc
willShowViewController:(UIViewController *)aViewController
invalidatingBarButtonItem:(UIBarButtonItem *)button
{
self.navigationItem.rightBarButtonItem = nil;
}
所有这些东西都是使用这样的代码创建的......
UISplitViewController *svc = [[UISplitViewController alloc] init];
UINavigationController *rightNav = [[UINavigationController alloc] init];
DetailViewController *dvc = [[DetailViewController alloc] initWithSomeArgs:args];
[rightNav pushViewController:dvc animated:NO];
svc.delegate = dvc;
svc.viewControllers = [NSArray arrayWithObjects:tabBarController, rightNav, nil];
// tabBar is good, not nil and working well on the iPhone
[self.window addSubview:svc.view];
[dvc release]; [rightNav release];
我不知道为什么这不起作用,我需要尽快解决。请帮帮我。
【问题讨论】:
-
当你 [self setPopoverController:pc];在第一种方法中(和 [self setPopoverController:nil]; 在第二种方法中)?
-
DetailViewController中没有属性popoverController
标签: objective-c cocoa-touch ipad uisplitviewcontroller