我正在尝试在我的详细视图上向导航栏添加一个按钮,以便在纵向模式下显示主视图,但按钮未显示。任何人都可以提供帮助或提供建议吗?
以下是我在详细视图中尝试执行此操作的方法:
- (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;
答案 0 :(得分:0)
而不是左键,使用右键按钮,它将显示。问题是左侧的按钮被vavigation控制器的默认按钮隐藏。尝试正确的栏按钮。
修改强>
这是一个通用方法,放在视图中加载以包含右键按钮。然后你可以访问其他方法。希望它有所帮助。
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject:)];
self.navigationItem.rightBarButtonItem = addButton;
self.detailViewController = (DetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];
在此处,在选择器中插入新对象的是IBAction
,用于声明该按钮必须执行的操作。