2014-02-14 144 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

相關問題