2009-05-19 10 views
1

私は(ヒイラキーの第3の子供から)ルートビューを次のようにロードしようとしています。これはうまくいかず、以下のコードを実行すると次のエラーが発生します。pushViewControllerデバッグ

-[DetailViewController clickButton:]: unrecognized selector sent to instance 0x1161e00' 

コード:

MapViewController *dvController = [[MapViewController alloc] initWithNibName:@"MapView" bundle:[NSBundle mainBundle]]; 
     [self.navigationController pushViewController:dvController animated:YES]; 
     [dvController release]; 
     dvController = nil; 

このまったく同じコードは、他のビューでこれをデバッグする方法任意のアイデアを作品。

+0

あなたの最終目標はわかりません。 RootViewControllerのメソッドにメッセージを送信しますか?または、RootViewControllerを表示したいですか(たとえば、rootViewControllerにポップバックするなど)? – Jordan

+0

私は基本的に、そのビュー内にロードされた別のビューを持つrootViewControllerにポップバックします。 –

答えて

1

MapViewControllerを作成してView Controllerスタックにプッシュするコードが正しいです。

認識できないセレクタエラーは、送信しているメソッドが、存在しないclickButtonという名前のメソッドを呼び出そうとしていることを示しています。

私はスペルミスの疑いがあります。私は、新しいビューを作成するためにコードを呼び出すボタンが定義されている可能性が最も高いと考えています。メソッドは次のようになります。

-(void) clickButton: (id) sender { 
    MapViewController *dvController = [[MapViewController alloc] initWithNibName:@"MapView" bundle:[NSBundle mainBundle]]; 
    [self.navigationController pushViewController:dvController animated:YES]; 
    [dvController release]; 
    dvController = nil; 
} 

「:(id)送信者」の部分があることを確認します。私は - (void)clickButton {}メソッドを実装する前に間違いを犯しましたが、メッセージに実際にパラメータも送信しました。あなたがプログラム的にボタンを作成し、clickButtonとして目標を設定している場合

+0

申し訳ありませんが、誤字がありましたが、まだエラーがあります。下記のコメントをご覧ください。 –

0
  1. 、clickButton方法は、(エラーによる)

  2. clickButton方法が存在することを確認しますが、引数に取る必要があります。したがって、メソッドの定義は、

    • (IBAction)clickButtonになります。
    • あなたはIBにおけるイベントにIBActionをマッピングした場合
  3. 、あなたは省略することができ:ナビゲーションベースのアプリケーションで任意のビューからルート・ビュー・コントローラをロードする部分(ID)、送信者

  4. をuse

    [[self navigationController:popToRootViewControllerAnimated:YES];

+0

申し訳ありません、私はコードに誤字がありました。 私は今すべてのコードを取り出して、働く単一のNSLogを持っていて、私は自分の心の中身までボタンをクリックできます。 エラーが発生しました... ***キャッチされていない例外 'NSUnknownKeyException'、理由: '[ setValue:forUndefinedKey:]:このクラスはキー値に符合しませんキーアクティビティインジケータ。 –

+1

つまり、activityIndi​​catorという名前のIBOutlet変数がありますが、nibファイルのコントロールにマップされていません。 – lostInTransit

+0

ありがとうございますが、現在のビューまたはNIBのコードには変数がありません。これを読み込もうとしているMapViewでは、IBOutletがあるので、他の場所でstartAnimatingしても動作します。私はIBでactivityIndi​​catorを切断し、それを再接続し、代わりに次のエラーを得た –