70 id _representedObject;
99 - (id)initWithCibName:(
CPString)aCibNameOrNil bundle:(
CPBundle)aCibBundleOrNil owner:(
id)anOwner
101 return [
self initWithCibName:aCibNameOrNil bundle:aCibBundleOrNil externalNameTable:@{ CPCibOwner: anOwner }];
124 _cibName = aCibNameOrNil;
126 _cibExternalNameTable = anExternalNameTable || @{
CPCibOwner:
self };
159 var cib = [CPViewControllerCachedCibs objectForKey:_cibName];
165 [CPViewControllerCachedCibs setObject:cib forKey:_cibName];
168 [cib instantiateCibWithExternalNameTable:_cibExternalNameTable];
187 var cibOwner = [_cibExternalNameTable objectForKey:CPCibOwner];
189 if ([cibOwner respondsToSelector:
@selector(viewControllerWillLoadCib:)])
190 [cibOwner viewControllerWillLoadCib:self];
194 if (_view === nil && [cibOwner isKindOfClass:[
CPDocument class]])
195 [
self setView:[cibOwner valueForKey:@"view"]];
199 var reason = [
CPString stringWithFormat:@"View for %@ could not be loaded from Cib or no view specified. Override loadView to load the view manually.", self];
204 if ([cibOwner respondsToSelector:
@selector(viewControllerDidLoadCib:)])
205 [cibOwner viewControllerDidLoadCib:self];
222 [
self willChangeValueForKey:"isViewLoaded"];
225 [
self didChangeValueForKey:"isViewLoaded"];
252 var willChangeIsViewLoaded = (_isViewLoaded == NO && aView != nil) || (_isViewLoaded == YES && aView == nil);
254 if (willChangeIsViewLoaded)
258 _isViewLoaded = aView !== nil;
260 if (willChangeIsViewLoaded)
264 - (BOOL)automaticallyNotifiesObserversOfIsViewLoaded
290 _view = [aCoder decodeObjectForKey:CPViewControllerViewKey];
291 _title = [aCoder decodeObjectForKey:CPViewControllerTitleKey];
292 _cibName = [aCoder decodeObjectForKey:CPViewControllerCibNameKey];
294 var bundlePath = [aCoder decodeObjectForKey:CPViewControllerBundleKey];
297 _cibExternalNameTable = @{
CPCibOwner:
self };
312 [aCoder encodeObject:_view forKey:CPViewControllerViewKey];
313 [aCoder encodeObject:_title forKey:CPViewControllerTitleKey];
314 [aCoder encodeObject:_cibName forKey:CPViewControllerCibNameKey];
315 [aCoder encodeObject:[_cibBundle bundlePath] forKey:CPViewControllerBundleKey];
343 return _isViewLoaded;
349 - (id)representedObject
351 return _representedObject;
357 - (void)setRepresentedObject:(
id)aValue
359 _representedObject = aValue;
399 return _cibExternalNameTable;