0

我在 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];,则视图不会在我的导航控制器中绘制。

为什么我使用单例模式时不绘制视图?我该怎么做?

4

1 回答 1

0
  • 将视图作为 AppDelegate 中的属性
  • didFinishLaunching在 AppDelegate 类中创建视图
  • 每当您想显示视图时,将视图添加到 viewcontrollers 视图中。
于 2013-03-27T15:10:16.100 回答