[英]How to release UITabBarController with all its view controllers?
[英]UITabBarController as a delegate of its sub view controllers
我目前有一个Storyboard,它的UITabBarController的子类链接到3个视图控制器。 这些视图控制器是UIViewController的自定义子类,我添加了“ delegate”属性,因为我需要从主视图控制器(从.plist文件中检索)访问属性(设置)。 这是一个设置类,用于处理对此文件的读写操作。
无论如何,我还没有找到如何从IB设置他们的委托属性,所以我在代码中添加了它:
- (void)viewDidLoad
{
[super viewDidLoad];
/* Fetch settings */
NSString* settingsPath = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"plist"]; // Load settings from file
settings = [[Settings alloc] initWithContentOfFile:settingsPath];
for (UIViewController<HasDelegate> *c in [self viewControllers]) {
c.delegate = self;
}
}
但是只有第一个视图控制器(启动应用程序时显示的视图控制器)可以访问它。 其他的有一个代表属性的nil指针。
这是正确的方法吗? 我想念什么?
没关系,我正在访问UINavigationController,而不是其rootViewController。 我补充说:
if([c isKindOfClass:[UINavigationController class]]) {
NSLog(@"UINavigationController");
UINavigationController *navC = (UINavigationController*)c;
[[[navC viewControllers] objectAtIndex:0] setDelegate:self];
}
它就像一个魅力!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.