Сжигание Segues терпит неудачу - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть storyboard.

В этом storyboard есть UITableViewController, использующий пользовательский класс comMasterViewController.

Используя storyboard, я просто перетаскиваю элемент управления UITableViewController в другую сцену.

Модал segue создан. Я изменяю его идентификатор на «loadingDataSegue».

В моем UITableViewController коде я запускаю эту строку:

[self performSegueWithIdentifier:@"loadingDataSegue" sender:nil];

Я получаю:

Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: 'Receiver (<comMasterViewController: 0x1b6290>) has no segue with 
identifier 'loadingDataSegue''

Что неправильно подключено?

Спасибо за помощь

EDIT: Я почти уверен, что связываю ТВЦ, а не какие-либо из подпредставлений. Глядя на код раскадровки, я вижу следующее:

<tableViewController storyboardIdentifier="comMasterViewController"
     title="comMasterViewController" clearsSelectionOnViewWillAppear="NO" id="19" 
     userLabel="comMasterViewController" customClass="comMasterViewController" 
     sceneMemberID="viewController">

и внизу, как дочерний тег для <tableViewController>, а не для любого из его подпредставлений:

<connections>
    <segue destination="UCh-sM-lba" kind="modal" identifier="loadingDataSegue" 
        id="epP-jH-GLZ"/>
</connections>

Вот трассировка стека:

0   CoreFoundation                      
        0x363388a7 __exceptionPreprocess + 186
1   libobjc.A.dylib                     
        0x3758d259 objc_exception_throw + 32
2   UIKit                               
        0x31193a3f -[UIViewController performSegueWithIdentifier:sender:] + 154
3   EZSystem
        0x000bdfe7 -[comMasterViewController insertNewObject:] + 58
4   CoreFoundation
        0x362923fd -[NSObject performSelector:withObject:withObject:] + 52
5   UIKit
        0x30fc8faf -[UIApplication sendAction:to:from:forEvent:] + 62
6   UIKit
        0x3108e76b -[UIBarButtonItem(UIInternal) _sendAction:withEvent:] + 118
7   CoreFoundation
        0x362923fd -[NSObject performSelector:withObject:withObject:] + 52
8   UIKit
        0x30fc8faf -[UIApplication sendAction:to:from:forEvent:] + 62
9   UIKit
        0x30fc8f6b -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 30
10  UIKit
        0x30fc8f49 -[UIControl sendAction:to:forEvent:] + 44
11  UIKit
        0x30fc8cb9 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 492
12  UIKit
        0x30fc95f1 -[UIControl touchesEnded:withEvent:] + 476
13  UIKit
        0x30fc7ad3 -[UIWindow _sendTouchesForEvent:] + 318
14  UIKit
        0x30fc74c1 -[UIWindow sendEvent:] + 380
15  UIKit
        0x30fad83d -[UIApplication sendEvent:] + 356
16  UIKit
        0x30fad0e3 _UIApplicationHandleEvent + 5826
17  GraphicsServices
        0x3264f22b PurpleEventCallback + 882
18  CoreFoundation
        0x3630c523 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 38
19  CoreFoundation
        0x3630c4c5 __CFRunLoopDoSource1 + 140
20  CoreFoundation 
        0x3630b313 __CFRunLoopRun + 1370
21  CoreFoundation                      
        0x3628e4a5 CFRunLoopRunSpecific + 300
22  CoreFoundation
       0x3628e36d CFRunLoopRunInMode + 104
23  GraphicsServices
       0x3264e439 GSEventRunModal + 136
24  UIKit
       0x30fdbe7d UIApplicationMain + 1080
25  EZSystem
       0x0009f963 main + 86
26  EZSystem
       0x0009f908 start + 40

Вот изображение: enter image description here

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Убедитесь, что вы не перетащили этот Segue из строки TableView или UIButton, а вместо этого из самого VC. Если вы сомневаетесь, удалите переход и подключите его снова. Также проверьте наличие опечаток (включая случай), если это не решит вашу проблему.

0 голосов
/ 21 сентября 2012

У меня была именно эта проблема (симптомы в любом случае), и ElJay дал мне подсказку, в которой я нуждался. Моя проблема была вызвана тем, что TableViewController находился внутри NavigationController, и он был открыт с помощью init alloc и push с помощью NavigationController. Это было причиной, по которой [self executeSegueWithIdentifier] не работал. Более того, это было причиной того, что созданный мной из клетки переход не работал, так что теперь мне даже не нужна часть [self execute ...], просто prepareForSegue, и все работает как шарм.
Я бы ответил на это ElJay, но по какой-то причине не могу. Все, что я мог сделать, это дать ему голос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...