Существует ли Segue?

Кто-нибудь знает, есть ли способ определить, существует ли переход с определенным именем? Или, в качестве альтернативы, если есть способ получить список всех именованных переходов, о которых знает iOS


person Cruinh    schedule 02.04.2012    source источник


Ответы (3)


нет, ваш метод определяет только запуск определенного перехода. но вы не можете проверить, существует ли переход, иначе, чем попытаться вызвать его. кажется, что единственный способ — использовать @try @catch :

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

Я предлагаю вам зарегистрировать ошибку. Раскадровка четко знает все переходы, исходящие из данной сцены:

<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? Я думаю, у вас есть законные основания для запроса функции.

person matt    schedule 16.01.2013

Вы можете проверить, существует ли переход, используя метод 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
    }
}

Если есть способ перечислить все переходы, я не знаю об этом и не видел его в документации.

person LJ Wilson    schedule 03.04.2012