2012-03-17 11 views
0

私は自分の足を客観的なCで濡らしています。そして、私はiPhoneの開発で遊ぶだろうと思った。 私はPage Controller.hと.mを持っていますxcode viewDidLoad

私の実装ファイルの中で、私はviewDidLoadメソッドの中にUIButtonをスローしました。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // content that loads in view 
    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    myButton.frame = CGRectMake(10, 160, 300, 44); 
    [myButton setTitle:@"Press Me!" forState:UIControlStateNormal]; 
    myButton.titleLabel.font = [UIFont systemFontOfSize:14]; 

    // add to a view 
    [self.view addSubview:myButton]; 


} 

これまでのところよく表示されています。これは、loadViewとviewDidLoadの違いについて私に尋ねます。

また、ボタンを押したときに私自身の機能を実行したいのですが、xcodeから実行可能なエラーが出ています。ここで

は、私は上記のコード内interjectedてきたものだ:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // content that loads in view 
    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    myButton.frame = CGRectMake(10, 160, 300, 44); 
    [myButton setTitle:@"Press Me!" forState:UIControlStateNormal]; 
    myButton.titleLabel.font = [UIFont systemFontOfSize:14]; 

    //added this 
    [myButton addTarget:self action:@selector(runClick) forControlEvents:UIControlEventTouchUpInside]; 


    // add to a view 
    [self.view addSubview:myButton]; 


} 

-(void)runClick{ 

    NSLog(@"does this work?"); 

} 

ものは誰にも場違いに見えるでしょうか?

また、PageController.hに次のものを追加しました。 - (void)runClick;

ここに私がキャッチエラーです:

2012-03-17 16:04:30.077何とか[510:207] - [__ NSCFString runClick]:認識されていないセレクタの違いについてインスタンスに0x6a0b4f0

+0

どうしたらいいですか? – sch

+0

実行可能なエラーは何ですか? –

+0

2012-03-17 16:04:30.077 Blah [510:207] - [NSCFString runClick]:認識できないセレクタがインスタンス0x6a0b4f0に送信 – coffeemonitor

答えて

1

を送ったが、 loadViewとviewDidLoad:

  • アップルによれば、コントローラ(あなたではありません!)は、ビューが要求されていてnilである場合にこのメソッドを呼び出します。したがって、ビューを作成して読み込みます。
  • 独自のビューを作成するためにloadViewをオーバーライドすることができます(コントローラのペン先が表示されていない場合)
  • nibファイルでビューコントローラによって作成されたビューに何かを追加する場合は、viewDidLoad viewDidUnloadで削除します。

エラーについては、詳細をお知らせください。あなたはデバッグしていますか?クラッシュする行は何ですか?

1

-(void)runClickを.hファイルに宣言しましたか? (明らかな疑問)。

あなたがコントロールのプロパティ(など、それはスライダーだったら言う)へのアクセスを取得したい場合にも、あなたが送信者のビットを追加する必要があります。

-(void)runClick (id)sender

0

私はあなたがする必要があると考えています実行後にコロンを追加してください:

action:@selector(runClick:) 
+0

':'は 'selector 'が引数を受け入れる場合のみ必要です。ですから、この質問の場合、関数 ' - (void)runClick {}'は ':'を使って呼び出す必要はありません。 – Hemang

関連する問題