2

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

  1. 它只是丢失了,我必须在代码中手动创建它吗?我想知道他们为什么会省略它。

  2. 假设我必须手动创建按钮,从中调用转场,我是否需要手动执行转场而不是使用情节提要?

我假设我会[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];

那么,这是一种常见的模式吗?我在做一些奇怪和不标准的事情吗?在我看来很奇怪,如果我的 BarButton 只是一个显示“信息”的自定义按钮,我可以创建它并将其全部连接到情节提要中……但是对于这个,我必须在代码中完成所有操作。

菜单:

4

1 回答 1

7

UIButtonTypeInfoLight 是一个 UIButton。按钮栏项目是 UIBarButtonItems。他们彼此没有任何关系。你只是在混淆苹果和橘子。

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

于 2012-02-06T02:55:44.857 回答