navigationController で UIView を描画していて、ユーザーが戻るボタンを押してもそのビューを表示する必要があるため、AppDelegate で View を作成してアプリ間で共有するメソッドを作成します。
(AppDelegate *)[[UIApplication sharedApplication] delegate];
ビューを見ることができるようにビューを作成するメソッドを使用してから使用すると[appDelegate createBottomView];
、明らかにユーザーが戻ってから進むと、AppDelegate はそれを再度インスタンス化し、ビューの値は再び null になります。そこで、クラスで 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];
、navController でビューが描画されません。
シングルトン パターンを使用するとビューが描画されないのはなぜですか? どうすればいいですか?