2011-07-26 9 views
0

私は基本的なNavigationControllerの作業を手伝ってくれるので、ビュー間を簡単に前後に切り替えることができます。私は進歩を遂げているように感じますが、私は明らかに重要なものを欠いています。テンプレートアプリケーションがビューをプッシュするようにしましたが、ターゲットNIBを指すinitWithNibNameを追加するだけです。これらのセカンダリビューに機能を追加しようとすると、SIGABRTエラーが発生してアプリがクラッシュします。私はこれが正しいと想像することはできません..私は単純にNIBを持っている場合、スイッチは正常に動作します。 2番目のViewControllerに追加した唯一のことは、ラベルといくつかのガベージテキストをラベルに挿入するボタンです。しかし、私はSIGABRTを取得するこのビューをプッシュするシフトボタンを押す瞬間。私はさまざまなビューコントローラ内に機能を配置することができるようにしたいと思います。私はとても近づいているように感じますが、それはとても悪化しています。誰かが間違ったところを指摘できますか?代わりにこれを入れてNavigation Controllerの基本との闘い

UIViewController *secondViewController = [[UIViewController alloc] initWithNibName:@"secondViewController" bundle:nil]; 

#import "mainViewController.h" 


@implementation mainViewController 

-(void)switchView { 
    UIViewController *secondViewController = [[UIViewController alloc] initWithNibName:@"secondViewController" bundle:nil]; 
    secondViewController.title = @"My First View"; 
    [self.navigationController pushViewController:secondViewController animated:YES]; 
    [secondViewController release]; 
} 

-(void)switchViewTwo { 
    UIViewController *thirdViewController = [[UIViewController alloc] initWithNibName:@"thirdViewController" bundle:nil]; 
    thirdViewController.title = @"My second View"; 
    thirdViewController.view.backgroundColor = [UIColor redColor]; 
    [self.navigationController pushViewController:thirdViewController animated:YES]; 
    [thirdViewController release]; 
} 
+0

まず、実装ファイルを調べ、クラス名とインスタンス変数の両方が小文字であるため、クラス名を大文字にしてコンパイラがその違いを認識できないようにします。例えばsecondViewController * secondViewControllerをSecondViewController * secondViewControllerに変更します。 – MCannon

+1

クラッシュログ全体を投稿してください。私は問題があなたのビューコントローラのメソッドではなく、ボタン自体であると考えています。 –

+0

私はもう一度、クラッシュログを投稿します –

答えて

0

MySecondViewController *secondViewController = [[MySecondViewController alloc] initWithNibName:@"secondViewController" bundle:nil]; 

MySecondViewControllerもXIBの名前は本当にsecondViewControllerと呼ばれていることを確認し、あなたのUIViewControllerの名前でなければなりません。最後に:

  • は、ファイルの所有者のファイルを選択して、あなたのXIB
  • に移動します。
  • インスペクタで3番目のタブを選択します。
  • クラスの名前を確認してください。 UIViewControllerの代わりにMySecondViewControllerにする必要があります。
関連する問題