問題タブ [viewdidappear]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - UIViewController は、viewWillAppear と viewDidAppear の間でサイズを変更しますか?
私のプロジェクトには本当に奇妙なバグがあります。私はUIScrollView
メインの大きなビューを持っています。その中に、インスタンス変数を持つUIViewController
(not UITableViewController
) とその他の があります。その上にタブバーがあるため、ビューコントローラーのビューフレームを に設定しました (これはまだ機能していません)。最初はうまく機能し、見栄えがしますが、を提示して閉じると(したがって、をリロードすると思います)、のビューが画面の上部にプッシュされます(デフォルトではに設定されていますが、設定したのでに、今は に設定します。UITableView
UIButtons
CGRectMake(0, 64, 320, 388)
modalViewController
UIViewController
UIViewController
CGRectMake(0, 0, 320, 460)
wantsFullScreenLayout
NO
CGRectMake(0, 0, 320, 388)
viewWillAppear
この問題をとの間のどこかに追跡しましたviewDidAppear
。を閉じた後の正確なログは次のmodalViewController
とおりです。
2011-05-06 11:08:39.974 Campus[1570:207] フレームは 0.000000、64.000000、320.000000、388.000000 (viewWillAppear)
2011-05-06 11:08:40.378 Campus[1570:200,007] フレームは 0.0.0 320.000000、388.000000 (viewDidAppear)
ご覧のとおり、フレームは では問題ありviewWillAppear
ませんが、 ではそうではありませんviewDidAppear
。
私はそれを修正するために次のことを行いました: - 、、、および
で目的のフレームを設定します。
- 私を に設定します。- メソッドのオーバーライドで自分と呼び出しを
殺しました。loadView
viewDidLoad
viewWillAppear
viewDidAppear
wantsFullScreenLayout
NO
[super viewWillAppear:]
[super viewDidAppear:]
私は何をすべきか?!?!?
iphone - viewDidAppear が実際に表示される前に呼び出されましたか?
この質問はこれと似ているように聞こえますが、回避策については既に認識しています。これはより分析的な質問です。
上記のリンクは に固有の質問ですが、でUITabBarController
の動作も観察しました。アニメーションなし。UINavigationController
pushViewController:... animated:NO
したがって、私の質問は、viewDidAppear
メソッドの後にビューが表示されるのはなぜですか、その名前はそのビューが既に表示されていることを意味し、定義はそのビューが既に表示されていることを示しています(定義は、ビューがウィンドウに追加されたと述べています)。
メソッドにブレークポイントをマークしてコール スタックを確認しました。プッシュ先のログは次のUINavigationController
とおりです。
ログは次のとおりです。
iphone - シミュレーターで実行しているか、デバイスで実行しているかにかかわらず、iOS の異なる出力
私はまだ非常に奇妙な問題を抱えています。アプリケーションをシミュレーターで実行しているか、iPhone で実行しているかにかかわらず、異なる出力が得られます。
次のコンソール ログを参照してください。
iPhone 初回実行、最初のキャリア セルをクリック
シミュレーターの初回実行、最初のキャリア セルのクリック
iPhoneでは、メソッドの後にメソッドwebViewDidFinishLoad
が読み込まれるようです。viewDidAppear
ただし、シミュレーターでは、メソッドの前webViewDidFinishLoad
にロードされます。viewDidAppear
何を与える?
編集:さらに奇妙なのは、UIScrollView と UIWebView を持つビューコントローラーをロードする最初のセルをクリックしたときにのみ発生することです。メソッドでクリックした後続のセルはすべて、webViewDidFinishLoad
メソッドの前にロードされviewDidAppear
ます。
これを修正できる方法はありますか?
ios - iOS-viewDidAppear:UITableViewを表示するときに遅延
私は奇妙な問題を抱えています。タブバーアプリケーションがあり、さまざまなタブごとにナビゲーションコントローラーを使用しています。各ナビゲーションコントローラーには、コンテンツを表示するための独自のビューコントローラーがあります。
タブをタッチすると、そのタブがビューとともにすぐに読み込まれ、読み込まれた後に(viewDidAppear:
)viewDidAppear:メソッドにデータをダウンロードする必要があります。
この機能をテストするために、次のメソッドを設定しました。NSThread
ビューがロードされている間にバックグラウンドで実行する必要がある長い操作の実行をシミュレートするためにを使用しています。次に、NSArray * test(nonatomic、retain)にいくつかのテストデータを割り当て、テーブルをリロードします。
メソッドで空の文字列を1つだけ含むようにテーブルを設定しているため、テーブルをリロードしていviewDidLoad
ます(これは、viewDidAppear:が呼び出される前にテーブルがセットアップされていることを読み取ったためです。
したがって、私の予想される動作は、この特定のタブに触れるとすぐに読み込まれ、10秒後にviewDidAppear:メソッドからのテーブルデータが入力されるはずです。ただし、この動作では、このタブに触れると10秒間待機してから、テーブルデータが入力されたビューが表示されます。
ios - Grand Central Dispatch, viewWillAppear, viewDidAppear order of execution confusion
I'm using GCD for background downloading in my Tab Bar app.
First step is to do some background downloading in -viewWillAppear:
(to setup some basic data before the view is loaded).
Second step is to the rest of the background downloading in -viewDidAppear:
For some reason, the dispatch block in -viewDidAppear:
gets called before the dispatch block in -viewWillAppear:
.
This only happens once after loading the application for the first time switching to the tab with the GCD background methods. Switching to another tab and then switching back to the tab with the GCD background methods. The third (and all the rest subsequent times) time I'm switching back it's works as expected (-viewWillAppear:
firing first and then -viewDidAppear:
).
Here are excerpts of my code (-viewWillAppear:
and -viewDidAppear:
):
-viewWillAppear:
-viewDidAppear:
Check the debug log at Pastie.
uiwebview - UIWebView:タブ画面でリクエストをロードする場所は? viewDidLoad または viewDidAppear?
タブバーコントローラーがあり、1 つのタブ画面に Web ビューが含まれており、ロード中 (つまり、webview の didload デリゲートメソッド呼び出しの前) に google.com などのリクエストをロードし、別のタブに切り替えてから戻ると、スピナーはまだ実行されていますが、ページは読み込まれません。viewDidLoad は 1 回しか呼び出されないと思います。読み込みコードを viewDidAppear に配置する必要がありますか、それともこれを解決する方法はありますか?
ありがとう!
objective-c - 目的 C: viewDidAppear で IBAction showInfo をトリガーする
Xcode 4 で Utility Application テンプレートを使用してアプリを作成しました。
ユーザーが URL を入力できるように、最初の起動時にアプリの裏面を表示する必要があります。
私のmainViewControllerには次のものがあります:
「URL がありません。フリップ」がログに記録され、showInfo メソッドが呼び出されますが、フリップしません。私は何を間違っていますか?
objective-c - viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear のガイドライン
これらの方法を正しい方法で使用するためのガイドラインはありますか? 特に、それらの内部で使用できるコードの種類を知りたいです。
たとえば、WS からデータを取得するメソッドを呼び出す必要がある場合、どこで呼び出す必要がありますか? NSNotification はどこで登録/登録解除できますか? 等
iphone - ViewDidAppearはタブバーベースのアプリでは呼び出されません
私は問題があります。私はタブバーベースのアプリであるアプリに取り組んでいます。このアプリでは[self.view addSubview:newVC.view]
、新しいビューに移動したいときに呼び出します。newVCは、表示する新しいビューのビューコントローラーです。また[self.view removeFromSuperview]
、前のビューに戻りたいときに使用します。
つまり、ナビゲーションコントローラーはありません。ここで問題となるのは、前のビューを更新したいということです。を使用しているため[self.view removeFromSuperview]
、viewDidAppear
前のビューは呼び出されず、そのビューを更新する方法がありません。
私たちが使用したアプローチには欠陥があることは知っていますが、大規模なアプリであり、ナビゲーションコントローラーを実装するために変更するのに時間がかかるため、この問題の解決策を見つけるのを手伝ってください。サブビューから呼び出すときに、viewDidLoad
またはviewDidAppear
または前のビューを呼び出すにはどうすればよいですか?[self.view removeFromSuperview]
xcode - アプリの起動時にviewDidAppearのperformSelector:withObject:afterDelayが機能しない
0.1f秒後に起動するには、いくつかのコードをviewDidAppearから新しいセレクターに移動する必要があります。だから私は次のようなことをしました:
アプリケーションを起動しても何も起こらず、「表示開始」が表示されません。ビューを変更してから最初のビューに戻ると、機能しています。
誰もが理由を知っていますか?