从我在SDK中找到的spliview主/详细示例开始,我最终得到的一个iPad应用程序在横向左侧有一个主人,而在纵向中,一个名为“Master”的按钮允许显示主人。
要显示此按钮,请使用以下代码
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
{
barButtonItem.title = @"Master";
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
self.masterPopoverController = popoverController;
}
在我的应用程序中,主视图将是某种搜索视图,因此我希望名为master的按钮显示系统提供的搜索图标。
首先,我根本不知道如何以编程方式(在运行时)向按钮添加系统图标?我知道如何在开发时在Xcode的故事板中选择它,但不是在运行时。
由于我不知道如何操作,为了测试目的,我在栏顶部添加了一个右侧栏按钮,我只是将其图像分配给主按钮,如下所示:
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
{
//barButtonItem.title = @"Master";
barButtonItem.image = searchBarButton.image;
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
self.masterPopoverController = popoverController;
}
结果是主按钮根本不显示。
我再说一遍,这只是为了测试目的,最后我想简单地分配系统提供的搜索图标。
所以我的两个问题是:
任何人都可以帮助我?
答案 0 :(得分:2)
您需要初始化条形按钮项。您可以使用以下代码执行此操作,将target和action参数替换为目标和函数。
self.barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Master" style:UIBarButtonItemStylePlain target:self action:@selector(action)];
[self.navigationItem setLeftBarButtonItem:_barButtonItem animated:YES];
如果要使用系统项,请使用以下代码,将initWithTitle替换为initWithBarButtonSystemItem。再次,替换目标和操作参数。
self.barButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(action)];
[self.navigationItem setLeftBarButtonItem:_barButtonItem animated:YES];
您还必须确保在@interface下包含barButtonItem。
@interface ViewController ()
@property UIBarButtonItem *barButtonItem;
@end