Storyboard 认为 Segue 不存在。但确实如此
Storyboard thinks Segue does not Exist. But it does
我的情节提要中有两个 ViewController 之间的表演转场。当调用 performSegueWithIdentifier:
时,我得到一个 NSInvalidArgumentException
:
Receiver (<[MY VIEWCONTROLLER SUBCLASS]: 0x7fc9e99f0640>) has no segue with identifier 'HomeToSettings''
segue 确实存在并已连接,并且在同一来源上还有许多其他 segues ViewController 工作正常。
在故事板的源代码中,segue 与所有工作的一样出现:
<connections>
<outlet property="notificationsButton" destination="hG9-8E-sv6" id="mn0-1x-Qxj"/>
<outlet property="settingsButton" destination="Fy0-au-d6J" id="r1c-fG-KOP"/>
<outlet property="tableView" destination="9bJ-Cd-hc3" id="Wuy-hJ-QVU"/>
<segue destination="ad8-yH-D5h" kind="show" identifier="HomeToCreateList" id="bsg-J2-Gp3"/>
//More segues...
<segue destination="pNX-Jw-wau" kind="show" identifier="HomeToNotifications" id="B2t-BE-YpW"/>
<segue destination="xge-ah-WXM" kind="show" identifier="HomeToSettings" id="nTa-qO-SCb"/>
</connections>
我试过:
- 重命名故事板
- 删除并重新创建 segue
- 重命名 segue
- 正在清理项目
- 正在重新安装应用程序
- 重置模拟器上的内容和设置
- 物理设备
Xcode 和 iOS 是截至 2016 年 6 月 1 日的最新数据。
如果它在某种程度上很重要,我将通过附加到 UIBarButtonItem 的 IBAction 触发 segue。然而,从另一个 UIBarButtonItem 到不同 ViewController 的另一个 segue 完美地工作。
我调用 segue 的确切行是:
[self performSegueWithIdentifier:@"HomeToSettings" sender:self];
我真的迷路了
例如,您将 show segue
从 VC-A to VC-B
命名为 HomeToSettings
,那么您只能从 VC-A
.
调用 [self performSegueWithIdentifier:@"HomeToSettings" sender:self];
如果您尝试从其他控制器调用,则会报错。
我刚刚复制了你的语句 [self performSegueWithIdentifier:@"HomeToSettings" sender:self];
,我在你的 HomeToSettings
字符串的 H
之前发现了一个奇怪的字符。
可通过键盘左方向键或后退方向键查看space!!
角色长得像
因此,请将其从设置此标识符的所有位置移除。
从下面的语句中复制标识符并使用它在界面构建器中设置并使用下面的语句执行 segue。
[self performSegueWithIdentifier:@"HomeToSettings" sender:self];
希望这会有所帮助:)
我的情节提要中有两个 ViewController 之间的表演转场。当调用 performSegueWithIdentifier:
时,我得到一个 NSInvalidArgumentException
:
Receiver (<[MY VIEWCONTROLLER SUBCLASS]: 0x7fc9e99f0640>) has no segue with identifier 'HomeToSettings''
segue 确实存在并已连接,并且在同一来源上还有许多其他 segues ViewController 工作正常。
在故事板的源代码中,segue 与所有工作的一样出现:
<connections>
<outlet property="notificationsButton" destination="hG9-8E-sv6" id="mn0-1x-Qxj"/>
<outlet property="settingsButton" destination="Fy0-au-d6J" id="r1c-fG-KOP"/>
<outlet property="tableView" destination="9bJ-Cd-hc3" id="Wuy-hJ-QVU"/>
<segue destination="ad8-yH-D5h" kind="show" identifier="HomeToCreateList" id="bsg-J2-Gp3"/>
//More segues...
<segue destination="pNX-Jw-wau" kind="show" identifier="HomeToNotifications" id="B2t-BE-YpW"/>
<segue destination="xge-ah-WXM" kind="show" identifier="HomeToSettings" id="nTa-qO-SCb"/>
</connections>
我试过:
- 重命名故事板
- 删除并重新创建 segue
- 重命名 segue
- 正在清理项目
- 正在重新安装应用程序
- 重置模拟器上的内容和设置
- 物理设备
Xcode 和 iOS 是截至 2016 年 6 月 1 日的最新数据。
如果它在某种程度上很重要,我将通过附加到 UIBarButtonItem 的 IBAction 触发 segue。然而,从另一个 UIBarButtonItem 到不同 ViewController 的另一个 segue 完美地工作。
我调用 segue 的确切行是:
[self performSegueWithIdentifier:@"HomeToSettings" sender:self];
我真的迷路了
例如,您将 show segue
从 VC-A to VC-B
命名为 HomeToSettings
,那么您只能从 VC-A
.
[self performSegueWithIdentifier:@"HomeToSettings" sender:self];
如果您尝试从其他控制器调用,则会报错。
我刚刚复制了你的语句 [self performSegueWithIdentifier:@"HomeToSettings" sender:self];
,我在你的 HomeToSettings
字符串的 H
之前发现了一个奇怪的字符。
可通过键盘左方向键或后退方向键查看space!!
角色长得像
因此,请将其从设置此标识符的所有位置移除。
从下面的语句中复制标识符并使用它在界面构建器中设置并使用下面的语句执行 segue。
[self performSegueWithIdentifier:@"HomeToSettings" sender:self];
希望这会有所帮助:)