xcode 自定义栏按钮项目出现“导航项目中不支持普通样式”警告

lmvvr0a8  于 2022-12-19  发布在  其他
关注(0)|答案(8)|浏览(83)

我拖动一个圆角矩形按钮到右边的条形按钮项的位置,并设置一个图像到圆角矩形按钮。所有的工作都很好,除了警告“在导航项中不支持普通样式”。即使我选择的条形按钮项的样式为“边框”,警告仍然存在。Xcode 4.2是怎么回事?
我用圆角矩形按钮定制了许多条形按钮项,有时Xcode 4. 2只在一个条形按钮项上显示一个警告,有时在所有条形按钮项上显示警告。

luaexgnf

luaexgnf1#

我可以通过手动编辑故事板文件来删除这些错误,并在<navigationItem>元素的Bar Button项中找到令人不快的style ="plain"条目。
变更自:

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

收件人:

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

这清除了警告...对或错。
这可能是一个惊人的黑客攻击,更大的问题是我没有从根本上解决它或从整个文档中删除不可见的栏按钮项。这是在逐一检查所有元素并发现一些导航栏为空(没有子项)之后发生的,可能是由于大量的复制和粘贴(cmd + c|继承和不使用副本(cmd + d)以生成接口。尽管根源不是根本原因,症状是条项目没有显示在文档"大纲视图"中需要修复。2界面生成器的行为有时让我觉得很微妙,大纲视图中应该有东西的空容器是一种气味。3现在对我来说是这样。有时候,删除有问题的节点并重新构建可以修复最奇怪的问题。
警告:在你尝试之前备份你的故事板...版本控制是你的朋友...当你的故事板被完全冲洗并且无法编译时,我不承担任何责任。你得到的只是一句"我告诉过你的!"我学过几次艰难的方法,但是勤奋的源代码控制让我省去了头痛。
编辑:在代码块中放入括号

mqxuamgl

mqxuamgl2#

如果你点击警告,你不去得罪导航项目做以下事情。(视觉表现亨特的答案与更安全的方法从评论中添加)
在文件浏览器中,右键单击脚本并选择Open As Source Code

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

要获取视图的名称,请在搜索栏中输入“scene”,然后单击向后搜索箭头以搜索navigationItem * 上方 * 标记上的第一个示例

这是你的场景的名字,你现在可以用上面描述的右击方法把你的故事板视图改回Interface Builder - Storyboard,然后在场景菜单中选择场景,以及里面的栏项。

转到“属性”检查器并将样式从Plain更改为Bordered

snz8szmq

snz8szmq3#

我在文档大纲中四处查看,停止了关于普通样式的警告。这显示了我的导航项,在这两个栏按钮项中,每个项中有一个按钮。有问题的设置在栏按钮项中。在其属性检查器中,我将样式从普通更改为完成,警告消失了。注意:我使用的是XCode 5。

pbgvytdp

pbgvytdp4#

如果你使用的是故事板,那么点击警告,它会把你带到冒犯的导航项目(我有两个问题,一个把我带到那里,另一个没有)-改变风格,清理项目。

j91ykkif

j91ykkif5#

backBarButtonItemleftBarButtonItemrightBarButtonItemUINavigationItem对象。UINavigationItem中没有style属性,因此这是发出警告的原因。您应该以编程方式设置barButton:
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参考的“自定义外观”部分。

7uzetpgm

7uzetpgm6#

在导航栏中,尝试使用UIBarButtonItem而不是Round rect按钮,并为它设置一个图像。

vsikbqxv

vsikbqxv7#

在我的例子中,它是一个后退箭头的图像,被设置为“普通”。
出现的错误消息涉及导航栏中的所有项目。

9nvpjoqh

9nvpjoqh8#

当你确定你已经把故事板中的所有栏按钮都设置成了非普通的按钮后,确保你执行了git提交并删除了派生数据。我花了很长时间试图弄清楚为什么问题没有自动解决,而删除派生数据文件夹为我解决了这个问题。

相关问题