Objective c UISPlitViewController弹出按钮缺失

Objective c UISPlitViewController弹出按钮缺失,objective-c,uisplitviewcontroller,Objective C,Uisplitviewcontroller,我试图以编程方式将当前视图替换为SplitViewController。这是我的密码 ProjectNavigationController *projectNavPanel = [[ProjectNavigationController alloc] init]; [projectNavPanel setProjectIndex:[indexPath row]]; [projectNavPanel setKuluId:[[[[[appDelegate userSettingsDictionar

我试图以编程方式将当前视图替换为SplitViewController。这是我的密码

ProjectNavigationController *projectNavPanel = [[ProjectNavigationController alloc] init];
[projectNavPanel setProjectIndex:[indexPath row]];
[projectNavPanel setKuluId:[[[[[appDelegate userSettingsDictionary] objectForKey:@"Projects"] objectAtIndex:[indexPath row]] objectForKey:@"Kulu Id"] intValue]];

ProjectDetailController *projectDetailPanel = [[ProjectDetailController alloc] init];
[projectDetailPanel setProjectIndex:[indexPath row]];
ProjectSplitViewController *splitRootController = [[ProjectSplitViewController alloc] init];

[splitRootController setViewControllers:[NSArray arrayWithObjects:projectNavPanel, projectDetailPanel, nil]];

[[self view] removeFromSuperview];
[[appDelegate window] setRootViewController:splitRootController];

除了一个例外,这几乎可以正常工作。加载“拆分视图”控制器并处于纵向模式时,导航视图将隐藏(如预期的那样),但局部视图没有带按钮的工具栏,用于在弹出视图中显示导航。从我的研究中,我明白这是默认行为。我错过什么了吗?detailViewController中的内容很少,因此我没有在此处包含代码,但如果有帮助,请告诉我。

您的代码中缺少一些内容

首先,要使用导航栏添加按钮,必须在
UISplitViewController
ProjectDetailController
之间有一个
UINavigationController

其次,必须设置UISPlitViewController delegate,并使用委托方法添加按钮:

- (void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc
{   
    [[projectDetailPanel navigationItem] setLeftBarButtonItem:barButtonItem animated:YES];
}

- (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
    [[projectDetailPanel navigationItem] setLeftBarButtonItem:nil animated:YES];
}

第三,不要忘记为您刚刚实现的
ProjectNavigationController
设置标题,或者在
splitViewController:willHideViewController:withBarButtonItem:forPopoverController
方法中手动为
barButtonItem
设置标题。有人有什么想法吗?