我在我的应用程序中添加了另一个适用于 iPad 的 Storyboard,试图制作我的第一个通用应用程序。
我从 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)和右侧的带有一些数据的表格视图(DetailViewController)。
因此,将拆分视图控制器连接到详细视图控制器的关系是“详细视图控制器”类型。
现在在菜单中,除了所有其他选项之外,还有第一个选项用于返回第一个详细视图控制器(一种“主页”选项),所以我还连接了主视图控制器和详细视图控制器使用“替换”segue。
所以现在发生的情况是,当方向是纵向时,菜单按钮会出现,但是如果我点击菜单的“主页”选项,按钮就会消失。
该按钮应该在我将要创建的所有不同的细节视图控制器上可见,所以它非常重要。
我希望我说得够清楚。