2011-04-04 15 views
0

今、objective-cとxcodeで公式に悩まされています。 PHPとJavaでのプログラミングははるかに簡単です。ボタンから外部ビューコントローラーをロードする別のビューコントローラーをクリック

とにかく私はいくつかの助けをすることができます。

私は、iPhone用の3つのタブ項目を持つタブバーアプリケーションを作成しました。これは、mapViewという名前のペンをロードする項目の1つで、これはOverlayViewControllerという名前の別のnibをロードするボタンを含んでいます。

私はこのチュートリアルの後に、カメラオーバーレイを作成するthis tutorial を作成しました。私はそれがどのように動作するのか理解していますが、ボタンからビューコントローラを実行する方法やタブバーから直接表示する方法を理解していません。私は、アプリケーションデリゲートのアプリケーション起動時の例のように、オーバーレイをロードするだけでオーバーレイを取得できます。私が灰色の画面が表示されるタブバー項目からロードしようとすると、空のビューコントローラがロードされ、コードがオーバーレイを表示するために実行されていないように見えます。

ボタンのクリックからオーバーレイをロードする方法や、タブバーのアイテムから直接ロードする方法を提案できる人は、本当に感謝しています。

ありがとうございました

p.s. Heres the link to the project if you wish to view the files

答えて

0

@AlexApps私はあなたのプロジェクトを通して見て、いくつかのフィードバックを持っています。

私は、OverlayViewControllerの作業を開始しようとする前に、ちょっとバックアップしてアップルのdocsの一部に、特にView Controller Programming Guideを渡すべきだと思います。アップルのドキュメントは大部分がよく書かれており、あなたのコードで明らかになっていることよりも、ビューやコントローラの理解を深めるのに役立ちます。

もう1つの提案は、Beginning iPhone Programmingなどの書籍から自由に入手できるソースコードを取得し、tabBarControllerベースのアプリケーションをレイアウトする方法の良い例があることです。そこには他の良いサンプルがあり、あなたのビューを整理し、それらを別のタブにロードするためのコントローラを表示する方法を紹介すると確信しています。

私は、このアドバイスに従えば、あなたが何を学んだのかであなたのアプリを再構成した時点で、あなたがやろうとしていることをやりにくくするだろうと思います。

ところで、ボタンを押しながらOverlayViewControllerをロードするときに何をしようとしているのかについてNavigationViewControllerを使用することを検討したいと思うかもしれませんが、数時間かかることがあります。それは違いの世界を作ります。さらに具体的な質問がある場合は、Stack Overflow(とGoogle)があなたの友人です。

最後に、IBOutletをインスタンス変数とプロパティに入れておく必要はありません。実際には、インスタンス変数はもう必要ありません。私は通常、すべてのプロパティを使用します。延期ページで

0

まず輸入のUIViewControllerクラス以下のように:バックpage2viewcontrollerは以下のように同じpage1viewcontrollerする

page2viewcontroller *page2 =[page2viewcontroller alloc] ; 
[self presentModalViewController:page2 animated:NO]; 
[page2 release]; 

後:

#import "page1viewcontroller.h" 
下のボタンクリックイベントコードの

#import "page2viewcontroller.h" 

バックボタンをクリックして以下のイベントコードを入力してください:

page1viewcontroller *page1 =[page2viewcontroller alloc] ; 
[self presentModalViewController:page1 animated:NO]; 
[page1 release]; 

これはすべて....です!

0

私はストーリーボードでこれを行いました。解決策は、タブバービューコントローラーとロードするビューコントローラーの間にセグを作成し、そのセグーに識別子を配置する必要があります。最後に、ボタンが押されたときにこれを配置する必要がありますと呼ばれる方法で:

[self performSegueWithIdentifier:@"segueId" sender:sender]; 

私は今それを行っている、それが完璧に動作します!

関連する問題