2012-04-02 8 views
4

特定の名前のセグが存在するかどうかを判断する方法があるかどうかは知っていますか?ある場合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 
    } 
} 

:あるかどうか、あるいは、すべての名前付きのリストを取得する方法は、iOS約

答えて

2

いいえ、あなたの方法は特定のセグが発射されたときのみ検出します。 セグが存在するかどうかは、それを呼び出す以外の方法でテストすることはできません。 唯一の方法は@try @catchを使用しているようだ:

@try { 
    [self performSegueWithIdentifier:@"Replace_Connected" sender:self]; 
} 
@catch (NSException *exception) { 
    NSLog(@"%@ no segue with identifier 'Replace_Connected' : %@", [self description], exception); 
} 
@finally { } 
-2

あなたはセグエはprepareForSegueメソッドを使用して存在するかどうかを確認することができますを知っていることをseguesすべてのSeguesをリストする方法は、私はそれについて知らないし、私はドキュメントでそれを見ていない。

2

私はあなたがバグを示唆しています。ストーリーボードは明らかに与えられたシーンから発せられるすべてのseguesを知っている:

<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プロパティを持っていませんか?私はあなたが機能要求の正当な根拠を持っていると思います。

関連する問題