0

こんにちは皆さん、アクションにアタッチされた次の関数を作成しましUIButtonた。ボタンがクリックされたときに呼び出されて機能しますが、クラスの他の場所で呼び出されたときには機能しません。

-(void)punchcardDetailButtonClicked{
    NSLog(@"punchcardDetailButtonClicked");
    PunchCardDetailsViewController *punchCardDetailsViewController=[[PunchCardDetailsViewController alloc] initWithNibName:@"PunchCardDetailsViewController" bundle:nil];
    UINavigationController *nvcLocation=[[UINavigationController alloc] initWithRootViewController:punchCardDetailsViewController];
    punchCardDetailsViewController.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;
    UIColor* navBarColor = [UIColor colorWithRed:128.0/255.0 green:99.0/255.0 blue: 64.0/255.0 alpha:0.0];
    nvcLocation.navigationBar.tintColor = navBarColor;
    [self presentModalViewController:nvcLocation animated:YES];
    [nvcLocation release];
    [punchCardDetailsViewController release];

}

を使用して同じクラスで呼び出しました[self punchcardDetailButtonClicked]が、これは期待どおりに機能しません。ただし、NSlogどちらの場合も印刷されます。

4

1 に答える 1

1

ビューコントローラーを提示する必要があります。これを使用してください

[self presentModalViewController:punchCardDetailsViewController animated:YES];

ナビゲーションコントローラーではなく、これではありません

[self presentModalViewController:nvcLocation animated:YES];

ビューコントローラーをルートビューコントローラーとしてナビゲーションコントローラーに追加しています。トランジションスタイルを提供する代わりに、そのコントローラーをプッシュできると思います

そして、[self punchcardDetailButtonClicked]このメソッドを呼び出す前に.hファイルでこのメソッドを宣言したかどうかを確認してください

于 2012-04-24T06:00:37.957 に答える