0

10回以上表示したいiOSアプリを開発しています。Androidでは、レイアウトを作成してから、そのクラスを作成する必要があります。私はXCodeでこれを達成しようとしていますが、それを行う方法がわかりません...

アイデアは、すべてのクラスが独自のビューを管理できるように、ビュー用のクラスを用意することです。私がこれまでに行ったことはこれです:

1- Overviewという名前の新しいObjective-CクラスとサブクラスUIViewControllerを作成し、WitchXIBでユーザーインターフェイスを確認します。

2-私が使用するそのビューを表示するには:[[NSBundle mainBundle] loadNibNamed:@"Overview" owner:self options:nil];

3-そしてviewDidLoadで私はこれを使用します:self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"overview_portrait.jpg"]];背景画像を変更するために

ビューは表示されますが、背景は変更されません。ボタンを追加してクリックすると、エラーがスローされます。-[ViewController push:]: unrecognized selector sent to instance 0x7427220

どうすれば私が望むことを達成できますか?

前もって感謝します!

4

3 に答える 3

1

ビューを表示していますが、コントローラーをロードしていないため、コントローラーのメソッドが呼び出されません。コントローラクラスのインスタンスを作成し、それを現在のコントローラからプッシュする必要があります。このようなもの:

Overview *overview = [[Overview alloc] initWithNibName:@"Overview" bundle:nil];
[self pushViewController:overview animated:YES];
于 2012-10-29T14:56:25.373 に答える
0

ViewControllersのプッシュはNavigationControllers用であるため、画面ビュー(ストーリーボードまたはXIBを使用しているかどうかはわかりません)が「NavigationController」というラベルの付いた灰色のボックスに添付されている場合、InterfaceBuilderを表示している場合は次のことができます。使用する:

        [self.navigationController pushViewController:myNewViewInstance animated:YES];

背景画像を使用すると、次のようになります。

UIImageView *myBackground = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.width)];
            [self.view addSubview:myBackground];
            [self.view sendSubviewToBack:myBackground];

ナビゲーションコントローラーを使用していない場合は、次を使用できます。

        [self presentModalViewController:<#(UIViewController *)#> animated:<#];(BOOL)#>];

これにより、新しいビューコントローラが表示され、使用に戻ります。

[self dismissModalViewControllerAnimated:<#(BOOL)#>]; 

多くのビューでは、ストーリーボードが最適だと思います。新しいプロジェクトを作成するときは、[ストーリーボードを使用]ボックスにチェックマークを付けてください。そうすれば、すべてのビューを簡単に確認でき、ボタンを押すだけでモーダルトランジションを作成できます。view1どこかでドラッグを解除してview2モーダルをクリックすると、トランジションが可能になります。

于 2012-10-29T14:49:04.073 に答える
0

Androidの設定についてはよくわかりませんが、iOSの場合は、nibファイルではなくビューコントローラーをインスタンス化する必要があります。あなたがしたいのは、新しい概要クラスを作成し、それをnibで初期化することです。

Overview *overviewController = [[Overview alloc] initWithNibName:@"Overview" bundle:nil];
于 2012-10-29T14:49:43.470 に答える