2012-04-02 55 views
4

有誰知道是否有方法來確定是否存在具有特定名稱的segue?或者,或者,如果有一種方式來獲得所有命名塞格斯的列表的iOS知道Segue存在嗎?

回答

2

不,你的方法只在特定的時間點被觸發時檢測到。 但是你不能通過另一種方式測試一個segue是否存在,而不是嘗試調用它。 看來,唯一的辦法就是使用@try @catch:

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

您可以檢查,看是否有Segue公司存在使用prepareForSegue方法:

- (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,我不知道它,我沒有看到它在文檔中。

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屬性?我認爲你有一個功能請求的合法理由。