この症状が出た人は恐らく下のソースと似たようなソースになってるんじゃないかと。
自分はTestViewClassでモーダルを呼び出したときにこの症状が出ました。
AppliNameAppDelegate.h
@interface AppliNameAppDelegate : NSObjectAppliNameAppDelegate.m{ UIWindow* window_; TestViewClass *testClass; } @property (nonatomic, retain) IBOutlet UIWindow *window; @end
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // windowを自分で作成 CGRect bounds = [[UIScreen mainScreen] bounds]; window_ = [[UIWindow alloc] initWithFrame:bounds]; testClass = [[[TestViewClass alloc]init]autorelease]; UINavigationController *NavigationController = [[UINavigationController alloc] initWithRootViewController:testClass] ; [window_ addSubview:NavigationController.view]; [window_ makeKeyAndVisible]; return YES; }
対処としてはAppliNameAppDelegate.mの下記の部分で
UINavigationController *NavigationController = [[[UINavigationController alloc] initWithRootViewController:paging] autorelease];NavigationControllerをautoreleaseしていたらこれを消してやる。
んでUINavigationControllerは.mじゃなく.hの方で宣言しておく。
deallocでreleaseするの忘れずにね。
これで新しくモーダルビューを表示した時にもちゃんとツールバーやナビゲーションバーが表示されるみたい。
TestViewClass上(呼び出した先)でモーダルを表示するとNavigationControllerのautoreleaseが動いて上手く処理されないのかも。
※追記
他の場所で同じような現象が起きたので例のごとく総当りでautorelease, release関係消してみたけど駄目でした。
今回の現象が起きたところは元々処理のさせ方が無理矢理だったからそれが原因なのかもしれないのですが。
とりあえずこの問題解決の糸口はrelease関係じゃないのかもしれません。
…という投げっぱなしな記事。
0 件のコメント:
コメントを投稿