有没有人知道是否有办法确定是否存在具有特定名称的segue?或者,如果有办法获取iOS知道的所有命名segue的列表
答案 0 :(得分:2)
不,您的方法仅检测何时触发特定的segue。 但你不能通过另一种方式来测试是否存在segue,而不是试图调用它。 似乎唯一的方法是使用@try @catch:
@try {
[self performSegueWithIdentifier:@"Replace_Connected" sender:self];
}
@catch (NSException *exception) {
NSLog(@"%@ no segue with identifier 'Replace_Connected' : %@", [self description], exception);
}
@finally { }
答案 1 :(得分:2)
我建议你提交一个bug。故事板清楚地知道从给定场景发出的所有段落:
<viewController id="2" customClass="ViewController" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="3">
<rect key="frame" x="0.0" y="20" width="320" height="460"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
<connections>
<segue destination="t3N-Fe-gqq" kind="modal" identifier="myCoolSegue" id="AYQ-C4-4vO"/>
</connections>
</viewController>
那么为什么不允许视图控制器实例请求该信息?此外,视图控制器具有storyboard
属性,为什么它没有segues
属性?我认为您有合理的理由要求提供功能。
答案 2 :(得分:-2)
您可以使用prepareForSegue
方法检查Segue是否存在:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure we are dealing with the proper Segue
if ([segue.identifier isEqualToString:@"MySegueID"]) {
// Exists, do something
}
}
如果有办法列出所有Segues,我不知道它,我没有在文档中看到它。