#import <UIKit/UIKit.h>
#import "UCMapviewController.h"
#import "UCMenuviewController.h"
#import "UCOverviewController.h"
@interface UCRootViewController : UIViewController
@property (weak, nonatomic) UCMapviewController *mapviewController;
@property (weak, nonatomic) UCMenuviewController *menuviewController;
@property (weak, nonatomic) UCOverviewController *overviewController;
这是我的UCRootViewController声明,它应该管理这些子视图控制器。稍后它还将成为它们的委托,以处理何时显示或不显示一个控制器。
根视图控制器在UIAppDelegate中被强引用,并且将一直保持活动状态。
那么把这些子视图控制器设置为weak是否正确?我不是100%确定,但据我所知,当没有强指针指向它们时,弱指针会被释放。因此,由于根视图控制器是强引用的,把它们设置为weak是正确的,对吗?
#import <UIKit/UIKit.h>
@class UCRootViewController;
@interface UCOverviewController : UIViewController
@property (weak, nonatomic) UCRootViewController *rootviewController;
这是我的其中一个子视图控制器的标题。它们具有稍后委托根视图控制器的弱指针。声明
@class UCRootviewController
是否足以使它们调用委托方法?我是否需要这样做?谢谢。
编辑:我刚刚阅读了一篇关于ViewControllers的好文章,其中有一段话:
始终使用高质量的视图控制器容器或 +[UIViewController presentModalViewController:animated:] 在应用程序中显示视图控制器。如果您需要在某处保留对视图控制器的引用,请使用弱引用,除非您确实希望它为缓存目的而保持活动状态。在这种情况下,请确保正确响应低内存条件。
它说使用弱引用,你对此有什么看法?