0

Xcodeとiphone開発者のためのちょっとしたチュートリアルから始めました。単純なシングルビュープロジェクトを作成しました。ViewDidLoad(ViewController.m)にカスタムボタンのコードを追加しました。このボタンは、showAboutPage関数を指しています。

[aboutBtn addTarget:self action:@selector(showAboutPage) forControlEvents:(UIControlEventTouchUpInside)];

私のボタンは正しく表示されており、ハイライト、色、フォントに必要なすべてのコードがあります。

内部にどのコードを実装する必要がありますか

- (void) showAboutPage
{

}

2番目のビュー(redView.xib)にプッシュするため。ストーリーボードで遊ぶのは簡単です。「線をつなぐ」/ドラッグアンドドロップでそれを行うことができますが、プログラムでやりたいので、正しい方法を学ぶことができます。前もって感謝します。

4

3 に答える 3

1

ビューの最初の文字は大文字、redView=>RedView にする必要があります。もう 1 つの提案は、ボタンにターゲットを追加するよりも IBAction を使用する方が良いと思うことです。RedView.h、RedView.m、および RedView.xib を追加したら、Interface Builder で RedView.xib のクラスを RedView に設定する必要があります。次に、次のように使用できます。

- (void) showAboutPage
{
    RedView *redView = [[[NSBundle mainBundle] loadNibNamed:@"RedView" owner:self options:nil]] objectAtIndex:0];
    [self.view addSubview:redView];
}
于 2012-11-03T15:42:30.777 に答える
0

@H2CO3は非常に正しい答えを提供しましたが、Interface Builderを使用したい場合は、コードを減らして構造を増やすこともできることを付け加えたいと思います。IB で ViewController1 から ViewController 2 へのセグエを作成し、その識別子を一意のものに設定しますToViewController2。次に、メソッドは次のようになります。

- (void) showAboutPage {
    [self performSegueWithIdentifier:@"ToViewController2" sender:self];
}

いくつかの変数も渡したいと仮定すると、次のようにすることができます。

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"ToViewController2"]) {
        [segue destinationViewController setYourVariable:variable];
        // Pass your variables on to the next view here.
    }
}

これの良いところは、次の ViewController に渡す必要があるすべてのものが、その ViewController からいくつかのセグエがあると仮定して、このメソッドで渡されることです。

于 2012-11-03T15:44:19.940 に答える
0

ビューコントローラークラスでこれらすべてを行っていると仮定します(それは私があなたの説明から推測したものです):

- (void)showAboutPage
{
    AboutPageViewController *about = [[AboutPageViewController alloc] init];
    [self presentViewController:about animated:YES];
    // If you're not using ARC:
    [about release];
}
于 2012-11-03T14:31:16.740 に答える