我正在尝试将ViewController连接到TabController中的选项卡。我将选项卡类型设置为NavigationController,将我的ViewController子类设置为选项卡的标识。我还为选项卡设置了NIB名称。当我使用NavigationContollers的任何其他选项卡时,一切正常,但是一个特定的视图会引发异常,此类不是键值txtPassword的键值编码。
2011-07-14 17:11:10.784 myApp[5027:207] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x5a36500> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key txtPassword.'
*** Call stack at first throw:
(
0 CoreFoundation 0x013305a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x01484313 objc_exception_throw + 44
2 CoreFoundation 0x013304e1 -[NSException raise] + 17
3 Foundation 0x00195677 _NSSetUsingKeyValueSetter + 135
4 Foundation 0x001955e5 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 285
5 UIKit 0x0061930c -[UIRuntimeOutletConnection connect] + 112
6 CoreFoundation 0x012a68cf -[NSArray makeObjectsPerformSelector:] + 239
7 UIKit 0x00617d23 -[UINib instantiateWithOwner:options:] + 1041
8 UIKit 0x00619ab7 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 168
9 UIKit 0x004cf628 -[UIViewController _loadViewFromNibNamed:bundle:] + 70
10 UIKit 0x004cd134 -[UIViewController loadView] + 120
11 UIKit 0x004cd00e -[UIViewController view] + 56
12 UIKit 0x004cb482 -[UIViewController contentScrollView] + 42
13 UIKit 0x004dbf25 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 48
14 UIKit 0x004da555 -[UINavigationController _layoutViewController:] + 43
15 UIKit 0x004db870 -[UINavigationController _startTransition:fromViewController:toViewController:] + 524
16 UIKit 0x004d632a -[UINavigationController _startDeferredTransitionIfNeeded] + 266
17 UIKit 0x005f12e9 -[UILayoutContainerView layoutSubviews] + 226
18 QuartzCore 0x00f5aa5a -[CALayer layoutSublayers] + 181
19 QuartzCore 0x00f5cddc CALayerLayoutIfNeeded + 220
20 QuartzCore 0x00f020b4 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 310
21 QuartzCore 0x00f03294 _ZN2CA11Transaction6commitEv + 292
22 QuartzCore 0x00f0346d _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 99
23 CoreFoundation 0x0131189b __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 27
24 CoreFoundation 0x012a66e7 __CFRunLoopDoObservers + 295
25 CoreFoundation 0x0126f1d7 __CFRunLoopRun + 1575
26 CoreFoundation 0x0126e840 CFRunLoopRunSpecific + 208
27 CoreFoundation 0x0126e761 CFRunLoopRunInMode + 97
28 GraphicsServices 0x01acd1c4 GSEventRunModal + 217
29 GraphicsServices 0x01acd289 GSEventRun + 115
30 UIKit 0x0042bc93 UIApplicationMain + 1160
31 myApp 0x00001f44 main + 102
32 myApp 0x00001ed5 start + 53
)
terminate called after throwing an instance of 'NSException'
该属性被声明为ViewController的接口(UINavigationViewController的子类,并作为属性公开。它也被合成并连接在IB中,就像其他控件一样,但由于某种原因引发了这个异常。
有没有办法追查原因?
答案 0 :(得分:8)
您的.xib可能在视图中引用了未定义的txtPassword属性 - 例如@synthesize遗失了。
答案 1 :(得分:3)
事实证明我在UITabController中将Tab的类标识设置为UINavigationController子类的实例,并且选项卡的类型设置为导航控制器。我需要的是在选项卡中设置 UIView 的类标识,而不是标签本身。