2014-02-14 95 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传递给另一个viewController – JustAnotherCoder

+0

它崩溃,因为您正试图在DetectorSpacing上设置'setViewDelegate'属性,但该类没有'viewDelegate'属性...检查您是否引用了正确的视图控制器 – CW0007007

+0

尝试发件人:自己 – Jeef

回答

0

这是我如何通过managedObjectContext塞格斯

之间

在你的类,你会通过数据使用prepareForSegue通话。 (假设是这个类有一个叫做_managedObjectContext变量能够沿着给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调用。即将结束时,我会检查以确保destinationController将“响应”此方法,如果这样的话数据被设置。

清楚吗?

+0

明白了,感谢您花时间回答,非常感谢。 – mikle81

+0

我不是100%肯定这是你正在寻找,但显然它是如此美妙。 – Jeef

相关问题