Ipad 当splitview处于纵向时,弹出按钮不可见

Ipad 当splitview处于纵向时,弹出按钮不可见,ipad,uisplitviewcontroller,Ipad,Uisplitviewcontroller,我在我的应用程序中添加了另一个iPad故事板,试图制作我的第一个通用应用程序 我正在启动一个UISplitViewController,在它的左边有一个菜单,右边有一个细节控制器 我已经在详细视图中定制了导航栏,现在弹出按钮(当iPad处于纵向时,应该显示菜单的按钮)没有显示 这是我用来自定义viewDidLoad中导航栏的代码: UIImage *navBarImg = [UIImage imageNamed:@"someimage"]; [self.navigationController.

我在我的应用程序中添加了另一个iPad故事板,试图制作我的第一个通用应用程序

我正在启动一个UISplitViewController,在它的左边有一个菜单,右边有一个细节控制器

我已经在详细视图中定制了导航栏,现在弹出按钮(当iPad处于纵向时,应该显示菜单的按钮)没有显示

这是我用来自定义viewDidLoad中导航栏的代码:

UIImage *navBarImg = [UIImage imageNamed:@"someimage"];
[self.navigationController.navigationBar setBackgroundImage:navBarImg forBarMetrics:UIBarMetricsDefault];
UIImage *logo = [UIImage imageNamed:@"logo"];
self.navBar.titleView = [[UIImageView alloc] initWithImage:logo];
然后,在拆分视图“willHideViewController”的委托方法中,我尝试自定义菜单按钮:

UIImage *menuBtn = [UIImage imageNamed:@"menu"];
menuBtn = [menuBtn resizableImageWithCapInsets:UIEdgeInsetsMake(0.0, 4.5, 0.0, 4.5)];
barButtonItem.image = menuBtn;
barButtonItem.title = NSLocalizedString(@"Menu", nil);
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
self.masterPopoverController = popoverController;
我试图删除导航栏和菜单按钮自定义设置,按钮显示出来。 我的代码怎么了

编辑:

按照Nazir的建议,我在viewDidLoad方法中添加了以下代码:

UIImage *menuBtn = [UIImage imageNamed:@"menu"];
menuBtn = [menuBtn resizableImageWithCapInsets:UIEdgeInsetsMake(0.0, 4.5, 0.0, 4.5)];
[self.navigationItem.leftBarButtonItem setBackgroundImage:menuBtn forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[self.navigationItem.leftBarButtonItem setTitle:@""];
我忘了按钮不需要标题,但如果我不设置它,按钮将不会出现

现在的问题是我把故事板搞砸了。 在应用程序启动时,我想看到左侧的菜单(MasterViewController)和右侧的带有一些数据的tableview(DetailViewController)

因此,将分割视图控制器连接到局部视图控制器的关系segue属于“局部视图控制器”类型

现在在菜单中,除了所有其他选项外,还有第一个选项用于返回第一个局部视图控制器(一种“主”选项),因此我还使用“替换”序列将主视图控制器与局部视图控制器连接起来

现在的情况是,当方向为纵向时,菜单按钮出现,但如果我点击菜单的“主页”选项,按钮就会消失

这个按钮应该在我将要创建的所有不同的细节视图控制器上都可见,所以它非常重要


我希望我已经说得够清楚了。

如果我知道你想做什么,那么就给topBatButton添加背景,这样你就可以做: 在DetailViewController.m中执行此操作

UIImage *menuBtn = [UIImage imageNamed:@"someimage"];
将图像设置为条形项目:

[self.navigationItem.LeftBarButtonim setBackgroundImage:menuBtn for状态:UIControlStateNormal barMetrics:UIBarMetricsDefault]

将标题设置为栏项目:


[self.navigationItem.leftBarButtonim setTitle:@“sometitle”]

您不能有标题视图和左按钮项(如果我正确阅读文档)

根据文件:

Titleview:“如果将此属性设置为自定义标题,则会显示该属性而不是标题。如果LeftBarButtonim不是nil,则忽略此属性。”


所以我假设反过来也是正确的

这是否只适用于iPad?因为对于iPhone,我使用了相同的代码,而且它可以工作。对不起,我不知道,但是splitview只适用于iPad,所以我可以想象这两个设备之间的差异。我尝试注释导航栏的标题视图,但它还不起作用。我在viewDidLoad和willHideViewController中都试过了,但都不起作用。现在它似乎起作用了,但我搞砸了一些事情。我会更新我的问题。