2012-03-26 12 views
0

私は新しいプロジェクト "Single View Application"を作成し、mainviewをStoryboardで設計しました。メインビューにはカメラを開くUIButtonがあり、カメラはバーコードをスキャンして自動的にウェブサイトに移動します。これでWebViewをプログラムで作成し、Webサイトを開き、WebView内にUIButtonを作成することができました。今度は、UIButtonを家庭のボトルトンとして動作させ、mainviewに戻したいと思います。私はそれをすることができません、助けてください。storyViewを使用してwebViewからmainviewに戻る

ViewController.mコード:http://cl.ly/FKj8

マイストーリーボードは、次のようになります。 enter image description here

+0

どのようにWebビューから戻ってくるかは、どのように取得したかによって異なります。あなたはそれを単一のView Controllerのビュー階層に挿入しましたか、別のView Controllerに分割しましたか?後者の場合は、モーダルビューコントローラとして表示されるのか、またはナビゲーションコントローラにプッシュされますか? – rickster

+0

私はそれを単一のビューコントローラ内に実装しました –

答えて

1

あなたは本当にView Controller Programming Guideになります - 単一のビューコントローラの内容を中心に切り替えることによって、あなたが作っていますほとんど利益のないあなた自身のための余分な仕事の多く。アプリ内で異なる「スクリーン」を使いたいときに複数のView Controllerを使用することで、ストーリーボードを活用して開発を容易にすることができ、自動的にメモリ管理が改善されます(クラッシュの可能性は低くなります)。

しかし、より直接的にあなたの質問に答えるために...あなたが[self.view addSubview:webView]とビュー階層へのWebViewを入れている場合は、[webView removeFromSuperview]でそれを削除することができます。 (これは、あなたがそれを却下したい場合、あなたがそれを参照できるように、周りのWebViewへの参照を保持する必要がありますを意味します。)私もコードに気づいた


あなたは無関係をcl.lyする投稿しました方法-deviceModeluname()を使用してデバイス情報を取得します。これは、2つの理由のために、悪い考えです:

  • uname()は、(それが現在ない場合でも)、iOSデバイス上で有益な何かをすることは保証されません。この種の情報が必要な場合は、代わりにクラスを使用してください。
  • 通常、はありません。アプリで機能を有効にするためのデバイス名をテストします。代わりに、必要な機能をテストする必要があります。たとえば、Retinaディスプレイをテストするために「iPhone 4」で始まるデバイス名を検索すると、第4世代のiPod touchと、iPhone-5-what-they-called-what-what-what-what-c​​alled代わりにUIScreenクラスを使用してください)。
+0

[webView removeFromSuperview]を実装すると、そのボタン押下メソッドで参照がないため、エラーが表示されます。それをどのように実装するのですか? –

+1

作成時に参照を保持します。たとえば、ivarで記述します。 – rickster

+0

どうすればいいですか?私はここで完全な初心者ですので、助けてください。 –

関連する問題