UIButton,UITableViewCell等的实例可用作Interface Builder中的segue源(即,您可以按住ctrl键单击这些对象并将其链接到 Storyboard 中的 Controller )。

我们可以创建允许相同功能的直接UIView子类吗?如果是这样,怎么办?

注意:这是问我问题的另一种方法:如何在自己的类(class)的“Triggered Segues”部分中添加项目?这是一个UITableViewCell可以看到的内容:

ios - 创建可以触发segue的UIView子类-LMLPHP

最佳答案

因为我喜欢与让具有相同的功能,所以我很困惑。免责声明:我对iOS和Apple完全陌生,因此我认为一定是我自己,并且我不了解为什么它不起作用。

这个“答案”更多是一种理论,也许是一个非常糟糕的理论。因此,请让我知道是否已经有解决方案。

理论

我认为不可能仅通过代码来扩展/控制“Triggered Segues”部分。似乎XCode基于从触发Segues显示的对象库中选择的控件知道。

ios - 创建可以触发segue的UIView子类-LMLPHP

思想

仅具有例如的子类UIButton没有让我在Connections检查器中的“触发的Segues”部分。在“自定义类别”部分中设置类别也无济于事。

ios - 创建可以触发segue的UIView子类-LMLPHP

仅当我使用对象库中的按钮时,才会获得“触发的Segues”部分。例如。如果我是UIButton的子类,则应该使用“按钮”。

ios - 创建可以触发segue的UIView子类-LMLPHP

我在Main.storyboard中使用了XML,每当将<subviews><button ...更改为<subviews><view ...时,“Triggered Segues”部分就消失了。改回来,它出现。见下文。我将包含customClass="IconButton"属性的元素从按钮更改为查看。

按钮:触发了Segues

<viewController title="..." id="Zzf-WE-vxI" customClass="MyCustomClass" ... >
    <view key="view" contentMode="scaleToFill" id="Mfn-O2-CMJ">
        <!-- ... -->
        <subviews>
            <button customClass="IconButton" customModule="...">
                <!-- ... -->
            </button>

View :无触发的Segues
<viewController title="..." id="Zzf-WE-vxI" customClass="MyCustomClass" ... >
    <view key="view" contentMode="scaleToFill" id="Mfn-O2-CMJ">
        <!-- ... -->
        <subviews>
            <view customClass="IconButton" customModule="...">
                <!-- ... -->
            </view>

结论

我的结论是,XCode基于 Storyboard 的XML中的元素/控件显示了“触发的Segues”部分-它不依赖于我子类的类。因此,我怀疑是否可以通过代码控制“触发的Segues”部分的内容。

如果我错了,请告诉我。如前所述,我现在还没有使用XCode内部的真正经验,我很好奇我的理论是否是bla bla bla。

关于ios - 创建可以触发segue的UIView子类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31991600/

10-12 05:32