iOSでビューが画面に表示された直後に、ユーザーに表示されるアニメーションを実行しようとしています。これをviewDidAppearに入れることができると思っていました。ドキュメントでは、ビューが表示された直後にこれが呼び出されるように聞こえます。ただし、そうではないようです。ビューが実際に表示される前に、viewDidAppearが呼び出されています。ビューは、ペン先からではなく、プログラムで作成されます。抽象化された例を次に示します。
sampleviewcontroller.m
@implementation sampleViewController
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
// setup a generic view
self.view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
self.view.backgroundColor = [UIColor blueColor];
}
// View should be shown by now?
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
return; // set breakpoint here, but view is NOT visible in simulator at this point
}
これにより、真っ青なビューが作成されます。ただし、viewDidAppearの戻り行にブレークポイントを設定すると、ブレークポイントに到達したときにその青いビューは表示されません。後で表示されるようになります。
これは期待されていますか?ビューが実際にユーザーに表示されるのはいつですか?App Delegateコードは、ストックpregenのものです:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after app launch
[window addSubview:viewController.view];
[window makeKeyAndVisible];
return YES;
}
それが重要な場合は、古いSDK(Snow Leopard上)を使用しています...