UIButtonTypeInfoLight在哪里?

JMa*_*tos 2 uinavigationbar uinavigationitem uibuttonbaritem ios5 segue

我正在寻找按钮栏项目的标识符列表中的UIButtonTypeInfoLight选项,我没有看到它.那么,有两个问题.

  1. 它只是缺少,我将不得不在代码中手动创建它?我想知道为什么他们会省略它.

  2. 假设我必须手动创建按钮,从中调用segue,我是否需要手动执行segue而不是使用故事板?

我假设我[self performSegueWithIdentifier:@"ShowChecklist" sender:nil];从我的按钮调用的方法中执行此操作.

创建我的按钮的代码是

UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(infoButtonAction) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *modalButton = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
[self.navigationItem setRightBarButtonItem:modalButton animated:YES];
Run Code Online (Sandbox Code Playgroud)

那么,这是一种常见的模式吗?我在做一些奇怪而非标准的事情吗?在我看来,奇怪的是,如果我的BarButton只是一个自定义按钮,说"info"我可以创建它并在故事板中将它连接起来......但对于这个,我必须全部用代码完成.

菜单:

mat*_*att 7

UIButtonTypeInfoLight是一个UIButton.按钮栏项是UIBarButtonItems.他们彼此无关.你只是混淆了苹果和橘子.

但是,UIBarButtonItem可以包含 UIButton.(这仅仅是因为它可以包含任何 UIView.)因此将UIButton拖到工具栏中.你得到的是一个包含 UIButton 的UIBarButtonItem .如果双击 UIBarButtonItem,则会获得UIButton.现在您可以设置按钮的类型.