添加按钮以从详细视图显示主视图

时间:2013-06-10 20:26:45

标签: ios master-detail uisplitview

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

以下是我在详细视图中尝试执行此操作的方法:

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

以下是从左侧滑动以显示主视图时的图片。

enter image description here

我设法让左按钮出现,但现在我不知道如何让它打开主视图。这是我按钮出现的方式:

mainMenu = [[UIBarButtonItem alloc]init];
    [mainMenu setTitle:@"Menu"];
self.navigationItem.leftBarButtonItem = mainMenu;

1 个答案:

答案 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,用于声明该按钮必须执行的操作。