Xcode故事版委托数据源场景。

15

更新 Xcode 7 后,我的一些视图控制器的名称变成了“Delegate Scene”,该怎么办?谢谢! 在此输入图片描述

更改标题并没有帮助 在此输入图片描述


鉴于没有人回复,我认为这是一个相当不寻常的问题 - 如果不是独特的话。您能否提供故事板以供审查? - Helge Becker
1
@HelgeBecker 看起来至少有5个人在几周内遇到了这个问题,所以可能有点问题。恐怕我不被允许分享我们的故事板。 - Morten Holmgaard
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Helge Becker
我假设你已经尝试过更改它的名称了。 - Steve Wilford
@SteveWilford 不行——因为我不知道在应用程序UI中没有显示的要使用哪个属性? - Morten Holmgaard
一样的情况,看起来是Xcode 7的退化。 - Nikolay Kasyanov
6个回答

15

尝试将控制器重命名为您想要的名称:

步骤1 选择“控制器”,在您的截图中命名为“Delegate”。

enter image description here

步骤2 再次点击“Delegate”,或按[Enter]进入重命名模式。

enter image description here

步骤3 将其重命名为有意义的名称。

enter image description here

步骤4 取消选择或再次按[Enter]以保存更改。 场景名称将更新以匹配您指定的名称。

enter image description here


1
谢谢 - 我不知道为什么我没有想到那个。但我仍然想找出提供的故事板文件中的问题所在。 - Morten Holmgaard
3
有时候它并不起作用 - 在重命名后,名称会立即改回原来的名字! - Morten Holmgaard
6
将重命名映射到"身份检查器"中的"文档:标签",在那里进行重命名,它将始终起作用。 - Morten Holmgaard

5

选择 视图控制器 -> 身份信息检查器 -> 文档标签 并在此处重命名。

身份信息检查器 - 文档标签

这对我起作用了。


3

补充@Steve Wilford的回答:

Xcode 7 的故事板(story board)中,视图控制器(view controller)名称在左窗格中显示的长度有限制,最长为 15 个字符。所有名称超过 15 个字符的名称都会更改为奇怪的名称,比如“Delegate Scene”或“Data Source Scene”。


2

请检查您的视图控制器的标题属性,视图控制器的名称来自于标题属性或该类的名称。(优先使用标题)

屏幕截图

如果需要,您还可以手动重命名控制器,就像Steve所建议的那样。


2

我没有直接的答案,但是有一个可以查找的地方。不幸的是,它超出了评论区的空间,所以我不得不把它放在这里。抱歉。

如果您在项目资源管理器中选择故事板,可以打开其源代码。故事板只是XML文件。 视图控制器长什么样子?将其与参考资料进行比较,例如新创建的视图控制器。也许您可以分享视图控制器的xml部分? 以下是一个(开箱即用)视图控制器示例:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="8191" systemVersion="15A284" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8154"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="tne-QT-ifu">
            <objects>
                <viewController id="BYZ-38-t0r" customClass="ViewController" customModule="eee" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
                        <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <animations/>
                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
            </objects>
        </scene>
    </scenes>
</document>

1

这是一个项目,你可以清楚地看到这是一个Interface Builder bug。我已经报告了它,但没有回应。ID是22972580。

DelegateBug.zip


错误仍然存在。我实现了一个轮播图。当我将UIVIew的数据源和代理设置为视图控制器('黄色圆圈')时,它会更改场景的名称为'Data Source'。尝试重命名场景、标题、故事板ID等...没有帮助。我甚至试图在故事板的源代码中进行更改。 - Katherine Jenkins
实际上,@bunty在下面的回答中是正确的。虽然我最初有一个很长的场景名称(作为场景名称显示得很好),但将我的UIVIew的代理和数据源添加到ViewController后,每个相关场景的名称都变成了“数据源”。但是,现在缩短名称似乎就可以解决问题了。 - Katherine Jenkins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接