2014-02-14 3 views
0

Я пытаюсь передать переменные между контроллерами представления без большой удачи. Я начал работать в обратном направлении от проблемы, с которой я столкнулся, но теперь у меня проблемы с получением эффекта.Передача переменных между контроллерами представления с помощью segue

Выполняю ли я метод segue с помощью идентификатора или его действие с помощью кнопки, которую я использую для выполнения вычисления, я получаю следующую ошибку в отладчике.

Любая помощь будет оценена по достоинству.

2014-02-14 13:59:58.795 BatteryCalculator[6944:70b] Cannot find executable for CFBundle 0x8dbd110 </Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/System/Library/AccessibilityBundles/CertUIFramework.axbundle> (not loaded) 
2014-02-14 14:00:00.869 BatteryCalculator[6944:70b] -[DetectorSpacing _setViewDelegate:]: unrecognized selector sent to instance 0x8dd6ff0 
2014-02-14 14:00:00.872 BatteryCalculator[6944:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DetectorSpacing _setViewDelegate:]: unrecognized selector sent to instance 0x8dd6ff0' 
*** First throw call stack: 
(
    0 CoreFoundation      0x0173d5e4 __exceptionPreprocess + 180 
    1 libobjc.A.dylib      0x014c08b6 objc_exception_throw + 44 
    2 CoreFoundation      0x017da903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275 
    3 CoreFoundation      0x0172d90b ___forwarding___ + 1019 
    4 CoreFoundation      0x0172d4ee _CF_forwarding_prep_0 + 14 
    5 UIKit        0x00347ecc +[UIViewController setViewController:forView:] + 40 
    6 UIKit        0x00342921 -[UIViewController setView:] + 511 
    7 Foundation       0x010edd28 _NSSetUsingKeyValueSetter + 133 
    8 Foundation       0x010ed253 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 267 
    9 Foundation       0x0114f70a -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 412 
    10 UIKit        0x004d0a15 -[UIRuntimeOutletConnection connect] + 106 
    11 libobjc.A.dylib      0x014d27d2 -[NSObject performSelector:] + 62 
    12 CoreFoundation      0x01738b6a -[NSArray makeObjectsPerformSelector:] + 314 
    13 UIKit        0x004cf56e -[UINib instantiateWithOwner:options:] + 1417 
    14 UIKit        0x00341605 -[UIViewController _loadViewFromNibNamed:bundle:] + 280 
    15 UIKit        0x00341dad -[UIViewController loadView] + 302 
    16 UIKit        0x003420ae -[UIViewController loadViewIfRequired] + 78 
    17 UIKit        0x003425b4 -[UIViewController view] + 35 
    18 UIKit        0x0035c3e2 -[UINavigationController _startCustomTransition:] + 778 
    19 UIKit        0x003690c7 -[UINavigationController _startDeferredTransitionIfNeeded:] + 688 
    20 UIKit        0x00369cb9 -[UINavigationController __viewWillLayoutSubviews] + 57 
    21 UIKit        0x004a3181 -[UILayoutContainerView layoutSubviews] + 213 
    22 UIKit        0x0ecdc56f -[UILayoutContainerViewAccessibility(SafeCategory) layoutSubviews] + 50 
    23 UIKit        0x00299267 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 355 
    24 libobjc.A.dylib      0x014d281f -[NSObject performSelector:withObject:] + 70 
    25 QuartzCore       0x03b4b2ea -[CALayer layoutSublayers] + 148 
    26 QuartzCore       0x03b3f0d4 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380 
    27 QuartzCore       0x03b3ef40 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 26 
    28 QuartzCore       0x03aa6ae6 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 294 
    29 QuartzCore       0x03aa7e71 _ZN2CA11Transaction6commitEv + 393 
    30 QuartzCore       0x03aa8544 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 92 
    31 CoreFoundation      0x017054ce __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30 
    32 CoreFoundation      0x0170541f __CFRunLoopDoObservers + 399 
    33 CoreFoundation      0x016e3344 __CFRunLoopRun + 1076 
    34 CoreFoundation      0x016e2ac3 CFRunLoopRunSpecific + 467 
    35 CoreFoundation      0x016e28db CFRunLoopRunInMode + 123 
    36 GraphicsServices     0x036e29e2 GSEventRunModal + 192 
    37 GraphicsServices     0x036e2809 GSEventRun + 104 
    38 UIKit        0x0022ed3b UIApplicationMain + 1225 
    39 BatteryCalculator     0x0000582d main + 141 
    40 libdyld.dylib      0x01d7b70d start + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 

На данный момент я не пытаюсь передать что-нибудь, я взял этот код из временно, пытаясь локализовать проблему. Все, что я делаю, это вызов segue с идентификатором и получение сбоя. Я также пробовал просто называть segue с помощью кнопки на первом контроллере представления, но с той же ошибкой.

При вызове SEGUE с кодом я использую:

[собственного performSegueWithIdentifier: @ "ResultSegue" отправитель: отправитель];

+1

Пожалуйста, разместите свой код, передавая переменную от одного viewController к другому – JustAnotherCoder

+0

Это сбой, потому что вы пытаетесь установить свойство setViewDelegate на DetectorSpacing, но этот класс не имеет свойства 'viewDelegate' ... Проверьте, что вы ссылаетесь на правильный контроллер. – CW0007007

+0

Попробуйте отправителя: self – Jeef

ответ

0

Вот как я прохожу managedObjectContext между перетекает

В классе, где вы будете передавать данные использовать prepareForSegue вызов. (Предполагается, этот класс имеет переменную _managedObjectContext который может быть передан по классу SEGUE)

класса в SEGUE От:

.h файла:

@property (weak, nonatomic) NSManagedObjectContext *managedObjectContext; 

.m файл :

@synthesize managedObjectContext 

вызов @synthesize будет сделать следующее:

  • локальная переменная называется _managedObjectContext
  • метод для getManagedObjectContext
  • метод для setManagedObjectContext

Кроме того добавьте следующий метод к классу

// Pass on managedObjectContext 
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 

// If the destination VC is able to take the setManagedObjectContext method the current objectContext will be passed along. 
if ([segue.destinationViewController respondsToSelector:@selector(setManagedObjectContext:)]) { 
    [segue.destinationViewController performSelector:@selector(setManagedObjectContext:) 
              withObject:_managedObjectContext]; 
} else { 

    NSLog(@"Segue to controller [%@] that does not support passing managedObjectContext", [segue destinationViewController]); 
} 
} 

Тогда в моем «класс», чтобы получить данные, которые я делать: в файле .h я есть

@property (weak, nonatomic) NSManagedObjectContext *managedObjectContext; 

и в файле .m я есть:

@synthesize managedObjectContext; 

Что это делает (с syntehsiation) делает вызов setManagedObjectContext и getManagedObjectContext. После того, как вы собираетесь переходить, я проверяю, чтобы пункт назначенияController «отреагировал» на этот метод, если это так, данные будут установлены.

прозрачный?

+0

Получил это работу, спасибо, что нашли время ответить, это очень ценится. – mikle81

+0

Я не был на 100% уверен, что это то, что вы искали, но, видимо, это было так замечательно. – Jeef

Смежные вопросы