0

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 でビューが描画されません。

シングルトン パターンを使用するとビューが描画されないのはなぜですか? どうすればいいですか?

4

1 に答える 1

0
  • View を AppDelegate のプロパティとして作成します
  • didFinishLaunchingAppDelegate クラスでビューを作成します
  • ビューを表示したいときはいつでもビューをviewcontrollersビューに追加してください。
于 2013-03-27T15:10:16.100 に答える