2011-12-29 7 views
0

私は基本的なナビゲーションベースのアプリケーションを作成していますが、exc_bad_accessエラーが表示されています。誰かが間違っていることを私に指摘できますか? psLaunchVCは、最初の画面のように細かいアップしますナビゲーションコントローラ(基本)付きios ios5 exc_bad_access

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    UINavigationController *navcon = [[UINavigationController alloc]init]; 
    psLaunchVC* pvc = [[psLaunchVC alloc]init]; 
    [navcon pushViewController:pvc animated:NO]; 

    [self.window addSubview:navcon.view]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

AppDelegate.m

:私はちょうど2画面と、ここで私が使用していたコードですがあります。 psLaunchVCからpsTipVCを起動しようとしています。

psLaunchVCはshowTipがtouchUpInsideのアクションとしてIBに接続されている

- (IBAction) showTip:(id)sender 
{ 
    // psTipVC *pst = [[psTipVC alloc]init]; 

    psTipVC *pst = [[psTipVC alloc]initWithNibName:@"psTipVC" bundle:nil]; 

    [self.navigationController pushViewController:pst animated:YES]; 

} 

として

-(IBAction)showTip:(id)sender; 

と.Mに実装さ.Hで宣言された作用を有します。しかし、このコードを実行すると、exc_bad_accessエラーが表示されます。ここで間違っていることを助けてくれる人がいますか? self.navigationControllerはnavコントローラにアクセスする正しい方法ですか?参照用

宣言:

@interface psLaunchVC : UIViewController 
@interface psTipVC : UIViewController 

実際のエラーメッセージ:

2011-12-29 00:03:13.739 passport[633:707] -[__NSCFString showTip:]: 
    unrecognized selector sent to instance 0x18f5e0 
2011-12-29 00:03:13.748 passport[633:707] 
      *** Terminating app due to uncaught exception 
      'NSInvalidArgumentException', 
      reason: '-[__NSCFString showTip:]: 
      unrecognized selector sent to instance 0x18f5e0' 
+0

エラーメッセージ '[__NCCFString showTip:]:unrecognized selector sent ...'のように、あなたのエラーがIBから 'showTip'メソッドへの接続と関係しているようです。だから私はあなたのナビゲーションコントローラのリファレンスとは関係がないと思う。 –

+0

私は、接続が確立していることをツールではっきりと確認しています。それは永続化リファレンスとは何の関係もないかもしれないことに同意しますが、他に何が原因である可能性がありますか? – Kiran

答えて

1

あなたはpsLaunchVCのようなルックスを取得しているメッセージがリリースされており、出口はゴミを指しています。 ARCを有効にしてこれをコンパイルしていますか?そうであれば、あなたのナビゲーションコントローラは、application:didFinishLaunchingWithOptions:が誰にも保持されないので、あなたの下から解放される可能性が最も高いです。その方法を次のように変更してみてください。

UIWindowは表示するビューだけでなく、rootViewControllerを本当に必要としています。また、initWithNibName:bundle:はUIViewControllerの初期化子であり、psLaunchVCは実際にはその代わりにinit'dでなければなりません。

+0

恐ろしく、これは問題でした。 window.rootViewController = navcon; – Kiran

関連する問題