93

我将圆形矩形按钮拖动到右侧条形按钮项的位置,并将图像设置为圆形矩形按钮。一切正常,除了警告“导航项中不支持普通样式”。即使我将 Bar Button Item 的样式选择为“Bordered”,警告仍然存在。Xcode 4.2 有什么问题?提前致谢!

附言。我使用圆形矩形按钮自定义了许多条形按钮项,有时 Xcode 4.2 在条形按钮项上仅显示一个警告,有时在所有条形按钮项上显示警告。

4

8 回答 8

140

我可以通过手动编辑情节提要文件来消除这些错误,并在<navigationItem>元素中的 Bar Button 项目上找到有问题的 style="plain" 条目。

更改自:

<barButtonItem key="rightBarButtonItem" style="plain" id="juB-DL-F9i">

至:

<barButtonItem key="rightBarButtonItem" id="juB-DL-F9i">

这清除了警告......对或错。

这可能是一个惊人的 hack,更大的问题是我没有从根本上导致它或从整个文档中删除不可见的条形按钮项。这是在逐个浏览所有元素并发现一些导航栏是空的(没有子级)并且可能发生在大量复制和粘贴(cmd + c | v)继承而不使用重复(cmd + d)构建界面。虽然根源不是根本原因,但症状是栏项目没有显示在要修复的文档“大纲视图”中。Interface Builder 的行为有时让我印象深刻,而在大纲视图中应该有一些东西的空容器是一种气味。好吧,现在对我来说。有时删除有问题的节点并重建可以解决最奇怪的问题。

警告:在你尝试这个之前备份你的故事板......版本控制是你的朋友......当你的故事板完全被冲洗并且无法编译时,我不承担任何责任。你只会得到一个“我告诉过你!” 我学习了几次艰难的方法,但勤奋的源代码控制让我很头疼。

编辑:将括号放在代码块中

于 2014-07-04T00:08:23.033 回答
33

如果您单击警告并且没有转到有问题的导航项,请执行以下操作。(从添加的评论中用更安全的方法直观地表示 Hunter 的答案)

在文件浏览器中右键单击情节提要并选择Open As Source Code

在此处输入图像描述

在源代码页中搜索“plain”,找到附加到导航项的那个。

在此处输入图像描述

要获取视图的名称,请在搜索栏中输入“场景”,然后单击返回搜索箭头以搜索该标签上方的第一个实例navigationItem

在此处输入图像描述

这是您的场景的名称,您现在可以Interface Builder - Storyboard使用上述右键单击方法将您的故事板视图更改回,然后在场景菜单中选择场景,然后选择其中的 Bar Item。

在此处输入图像描述

转到属性检查器并将样式从更改PlainBordered

在此处输入图像描述

于 2015-11-12T17:48:47.650 回答
13

通过在文档大纲中四处寻找,我停止了关于普通样式的警告。那是显示我的导航项,在这 2 个条形按钮项中,在每个按钮中。有问题的设置在条形按钮项目上。在其属性检查器中,我将 Style 从 Plain 更改为 Done,警告消失了。注意:我使用的是 XCode 5。

于 2014-05-08T02:36:10.427 回答
8

如果您正在使用情节提要,然后单击警告,它应该会将您带到有问题的导航项(我有两个问题,一个带我到那里,另一个没有) - 更改样式并清理项目。

条形按钮样式设置为普通

于 2015-06-03T10:26:26.973 回答
6

backBarButtonItem leftBarButtonItem并且rightBarButtonItemUINavigationItem对象。没有style财产,UINavigationItem所以这是警告的原因。您应该以编程方式设置 barButtons:

iOS 4:  

UIButton *bt=[UIButton buttonWithType:UIButtonTypeRoundedRect];
 [bt setFrame:YourFrame];
 //[bt setImage:[UIImage imageNamed:@"backBT"] forState:UIControlStateNormal];
 [bt addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside];
 UIBarButtonItem *leftButton=[[UIBarButtonItem alloc] initWithCustomView:bt];
 self.navigationItem.leftBarButtonItem=leftButton;

对于 iOS 5+:

阅读UIBarButtonItem 参考的“自定义外观”部分。

于 2012-06-08T10:10:22.527 回答
1

在导航栏中尝试使用 UIBarButtonItem 而不是圆形矩形按钮并为其设置图像。

于 2012-06-08T09:11:11.290 回答
1

在我的例子中,它是一个后向箭头的图像,设置为“普通”。

错误消息似乎是指导航栏中的所有项目。

于 2015-11-16T16:32:10.583 回答
0

在确定故事板中的所有条形按钮都设置为非普通按钮后,请确保执行 git commit 并删除派生数据。我花了很长时间试图弄清楚为什么问题没有自行解决,并删除派生数据文件夹为我解决了问题。

于 2017-03-10T14:40:20.043 回答