【发布时间】:2013-06-10 20:26:45
【问题描述】:
我正在尝试在详细视图的导航栏中添加一个按钮,以便在纵向模式下显示主视图,但该按钮未显示。任何人都可以提供帮助或提供建议吗?
这是我在详细视图中尝试的方法:
- (void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc
{
mainMenu = barButtonItem;
[mainMenu setTitle:@"Menu"];
[[self navigationItem]setLeftBarButtonItem:mainMenu];
}
- (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
if (mainMenu == [[self navigationItem]leftBarButtonItem])
{
[[self navigationItem]setLeftBarButtonItem:nil];
}
}
这是我在主视图中选择一行时加载详细视图的方式:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSMutableArray *details = [self.splitViewController.viewControllers mutableCopy];
UINavigationController *detailNav = [[UINavigationController alloc]initWithRootViewController:webViewController];
[details replaceObjectAtIndex:1 withObject:detailNav];
self.splitViewController.viewControllers = details;
KFBAppDelegate *appDelegate = (KFBAppDelegate *)[[UIApplication sharedApplication]delegate];
appDelegate.window.rootViewController = self.splitViewController;
我已将此添加到 viewDidLoad 并且现在显示按钮,但我不确定如何让它显示主视图。
mainMenu = [[UIBarButtonItem alloc]init];
[mainMenu setTitle:@"Menu"];
self.navigationItem.leftBarButtonItem = mainMenu;
这是我从左侧滑动以显示主视图时的样子。
我设法让一个左按钮出现,但现在我不知道如何让它打开主视图。这是我让按钮显示的方式:
mainMenu = [[UIBarButtonItem alloc]init];
[mainMenu setTitle:@"Menu"];
self.navigationItem.leftBarButtonItem = mainMenu;
【问题讨论】:
-
请看我编辑的答案。
-
我已经有一个显示活动视图的右栏按钮
-
另外,我从主从模板创建了这个项目,并没有真正改变太多的模板代码。在纵向时,我可以通过从屏幕左侧滑动来显示主视图。
-
从您发布的图片看来,右边的按钮是您的分享按钮。我的假设是您通过 IB 放置该按钮。它涵盖了您通过代码创建的按钮。您的按钮正在创建中,但它隐藏在共享按钮下。您可能必须对按钮进行子类化并使用 CGRect 将其放置在您想要的位置。或者只是通过 IB 添加另一个按钮,并使用灵活的空格箭头将其放置在您想要的位置。然后通过 IBAction 声明动作并将其合并到肖像的自动旋转方法中。或者将您的分享按钮放在其他地方。
-
右键以编程方式添加,而不是通过 IB。我正在尝试添加一个左栏按钮。我有一个左键可以显示,但我不知道如何让它打开主视图。
标签: ios master-detail uisplitview