我正在寻找按钮栏项目的标识符列表中的UIButtonTypeInfoLight选项,我没有看到它。所以,有两个问题。
它是否只是缺失,我将不得不在代码中手动创建它?我想知道为什么他们会省略它。
假设我必须手动创建按钮,从中调用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];
那么,这是一种常见模式吗?我在做一些奇怪而非标准的事情吗?在我看来,奇怪的是,如果我的BarButton只是一个自定义按钮,说“info”我可以创建它并在故事板中将它连接起来......但对于这个,我必须全部用代码完成。
答案 0 :(得分:7)
UIButtonTypeInfoLight是一个UIButton。按钮栏项是UIBarButtonItems。他们彼此无关。你只是混淆了苹果和橘子。
但是,UIBarButtonItem可以包含 UIButton。 (这仅仅是因为它可以包含任何 UIView。)因此将UIButton拖到工具栏中。你得到的是一个包含 UIButton的UIBarButtonItem 。如果您双击 UIBarButtonItem,则会获得UIButton。现在您可以设置按钮的类型。