2011-12-22 12 views
1

免責事項:私は非常に iOS開発に新しいです。"シングルビューアプリケーション"のビューを変更する

私はXCodeで「シングルビューアプリケーション」を開始しました。これは、「ストーリーボード」にインターフェイスを備えています。これは、すべてコードと作業に夢中です。今、私は別の考えが必要であることを認識しています。これを行う最も簡単な方法は何ですか(他のビューを今作成し、コード間で切り替える)。アニメーションは本当に気にしません。

ご協力いただければ幸いです。ありがとう!


編集:ご協力いただきありがとうございます。私は、ARCやStoryboardのない新しいプロジェクトを作成し、最小バージョンのものを4.0に設定しました。それから私はMats Stijlaartの答えを使用しました。

答えて

2

あなたはXIBから新しいビューを作成したい場合は、この操作を行います。

  • をのUIViewControllerのサブクラスを作成します。 (.h + .m)
  • 空のXIBを作成します。
  • UIViewControllerをXIBのファイル所有者のサブクラスにします。
  • UIViewを追加します。
  • ファイル所有者からUIViewにドラッグして、ビュープロパティをUIViewにリンクします。
  • あなたの意見を聞いてください。

あなたのコードです。 私はあなたの現在、画面に表示されているビューにリンクされている1つのコントローラクラスがあると仮定します。

このコントローラーでは、新しいビューを表示するためにカップリングする予定があります。 myEventと言うことができます。

- (IBAction) myEvent:(id)sender { 
    ViewControllerSubClass *subClass = [[ViewControllerSubClass alloc] initWithNibName:@"YourXIB" bundle:nil]; 
    subClass.view.frame = self.view.frame; 
    subClass.view.autoresizingMask = self.view.autoresizingMask; 
    [self.view.superview addSubview:subClass.view]; 

    //ARC 
    instanceVarSubClass = subClass; 

    //NO ARC 
    self.instanceVarSubClass = subClass; 
    [subClass release]; 
} 

強力なインスタンス変数(ARC)または(retain)キーワードを持つプロパティを作成する必要があります。

希望しました。

1

最も簡単な方法は、NavigationControllerと別のViewControllerを使用することです。

ストーリーボードで、そこにあるViewControllerを選択します。メニューの「エディタ」をクリックし、「Embed in」>「NavigationController」を選択します。

次に、新しいUIViewcontrollerサブクラスを作成します。UIViewControllerをストーリーボードにドラッグします。アイデンティティ・インスペクタのクラスを、作成したばかりのViewControllerに設定します。

第3に、Ctrlキーを押しながら最初のviewControllerからストーリーボードにドラッグしたものまでドラッグします。ポップアップが表示されます。 「プッシュ」をクリックします。あなたはちょうどセグを作りました。おめでとうございます。

segue(ViewController間の線)をクリックし、プロパティインスペクタで識別子を指定します。

次に、あなたのコードでは、これを行う([セグエ識別子]あなただけ与えた識別子です。):

[self performSegueWithIdentifier:@"[segue-identifier]" sender:self]; 

.... 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if([[segue identifier] isEqualToString:@"[segue-identifier]"]) 
    { 
     second *controller=[segue destinationViewController]; 
     //do stuff with the new controller here, for instance: delegation. 
    } 
} 

それは私が思うのです!あなたが何か重要なことを忘れていないことを願って);

+0

が、あなたが見逃したことは考えられません。良い答えと賢明な選択肢 - OPはナビゲーションまたはモーダル表示を希望するかどうかを選択できるようになりました。 – jrturton

+0

申し訳ありませんが、私のコメントの最初の部分を引っ込め - あなたは、1つのビューコントローラから次のビューコントローラに接続したばかりの場合、segueを実行するコードが必要です。私はあなたがボタンからそれを接続すると言ったと思った。 – jrturton

0

あなたのプロジェクトでは、新しいUIViewControllerサブクラスを追加してください。

ストーリーボードで、新しいビューコントローラーを既存のストーリーボードにドラッグします。 IDインスペクタで、新しいView Controllerクラスにカスタムクラスを設定します。

オリジナルのビューコントローラに新しいボタンを配置し、そこからCtrlキーを押しながら新しいビューコントローラにドラッグします。セグの種類のポップアップから「モーダル」を選択します。

この時点で、アプリケーションを実行して新しいボタンを押すと、新しいビューコントローラのビューが表示されます。

最初のビューに戻るには、新しいビューコントローラーにdismissModalViewController:animated:という別のボタンが必要です。後は君しだい!がんばろう!

0

私はiOS開発にも新しく、ストーリーボードで多くの経験はありませんでしたが、私がクライアント向けに行ったアプリはかなりシンプルになっていて、iOS版4.0より前。

ケースがアプリに似ている場合(つまり、iOS 4/5の主な機能を使用していない場合)、XIBファイルを使用することをおすすめします。 ThomasMは、ストーリーボードを使用してますが、それはのような単純なものだXIBsとNavigationControllersで、より多くの詳細な回答私ができるよりを与えている:あなたはストーリーボードは、すでにそれを行うだろうので、セグエを実行するためのコードを必要としない

[self.navigationController pushViewController:dvController animated:YES]; 
関連する問題