objective-c - UISplitViewController 中缺少 UIBarButtonItem

标签 objective-c cocoa-touch ipad uisplitviewcontroller

我在 UISplitViewController 的右侧 View Controller 中缺少带弹出窗口的导航项。当我将 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];

我不知道为什么这不起作用,我需要尽快弄清楚。请帮助我。

最佳答案

我遇到了类似的问题。我有一个 Master-Detail 应用程序并且正在使用 Storyboards。我的细节 View Controller 嵌入在导航 Controller 中。 UISplitViewControllerDelegate 方法已正确实现,并在设备旋转时调用它们。栏按钮已正确添加,但不可见。

问题原因:在我的详细 View Controller 的 Storyboard中,我手动添加了一个导航栏,否则我没有看到任何导航栏。但是,这与我添加按钮的导航栏不同。正确的导航栏隐藏在 Storyboard中,因此在我的应用中不可见。

解决方案:我转到 Storyboards 中的 Detail View Controller 并删除了我手动添加的导航栏。然后,我点击了导航 Controller 。在“属性检查器”下,我选中了标有“显示导航栏”的框。现在,正确的栏在我的导航 Controller 和详细 View Controller 以及我的应用程序中都可见。

关于objective-c - UISplitViewController 中缺少 UIBarButtonItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4754952/

相关文章:

iphone - 在 Textview 中共享数据并维护数据状态不起作用

ios - 单元格图像 TableViewController 重新定位

cocoa-touch - 振动 iPhone 指定的持续时间

iOS线程违规检测?

html - 使用下一步按钮时如何使 iPad HTML5 日期默认为空白/空

ios - 最佳代码实践 iPhone & iPad 自定义 View Controller

ios - 使用 CABasicAnimation 停止旋转图像

ios - 如何将局部变量更改为实例变量?

objective-c - 如何找到NSTextField中文本所占的大小?

ios - iPad 应用程序在横向左侧而不是横向右侧打开时添加边距