0

我正在尝试在详细视图的导航栏中添加一个按钮,以在纵向模式下显示主视图,但该按钮未显示。任何人都可以提供帮助或提供建议吗?

这是我在详细视图中尝试执行的操作:

- (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;
4

1 回答 1

0

而不是左按钮,使用右栏按钮,它将显示。问题是左侧的按钮被导航控制器的默认按钮隐藏。尝试右栏按钮。

编辑

这是一个通用方法,放置在视图中确实加载以包含右栏按钮。然后您可以访问其他方法。希望能帮助到你。

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject:)];
self.navigationItem.rightBarButtonItem = addButton;
self.detailViewController = (DetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];

在这里,在选择器中插入新对象是IBAction您用来声明该按钮必须做什么的对象。

于 2013-06-10T20:42:50.547 回答