我在 navigationController 中绘制 UIView,即使用户按下后退按钮,我也需要查看该视图,因此我创建了在 AppDelegate 中创建视图的方法,以便在应用程序之间共享它。
当我使用(AppDelegate *)[[UIApplication sharedApplication] delegate];
然后使用创建视图的方法时,[appDelegate createBottomView];
我可以看到视图,但显然如果用户返回然后前进,AppDelegate 将再次实例化它,并且视图的值将再次为空。所以我做了一个单例来在我的类中创建 AppDelegate:
AppDelehate.m
+(id)sharedInstance
{
static dispatch_once_t pred;
static AppDelegate *sharedInstance = nil;
dispatch_once(&pred, ^{
sharedInstance = [[AppDelegate alloc] init];
NSLog(@"DISPATCHED");
});
return sharedInstance;
}
我在我的课堂上称它为AppDelegate appDelegate = [AppDelegate sharedInstance];
但是,如果我调用该方法[appDelegate createBottomView];
,则视图不会在我的导航控制器中绘制。
为什么我使用单例模式时不绘制视图?我该怎么做?