問題タブ [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.

0 投票する
1 に答える
1921 参照

ios - UIViewController は、viewWillAppear と viewDidAppear の間でサイズを変更しますか?

私のプロジェクトには本当に奇妙なバグがあります。私はUIScrollViewメインの大きなビューを持っています。その中に、インスタンス変数を持つUIViewController(not UITableViewController) とその他の があります。その上にタブバーがあるため、ビューコントローラーのビューフレームを に設定しました (これはまだ機能していません)。最初はうまく機能し、見栄えがしますが、を提示して閉じると(したがって、をリロードすると思います)、のビューが画面の上部にプッシュされます(デフォルトではに設定されていますが、設定したのでに、今は に設定します。UITableViewUIButtonsCGRectMake(0, 64, 320, 388)modalViewControllerUIViewControllerUIViewControllerCGRectMake(0, 0, 320, 460)wantsFullScreenLayoutNOCGRectMake(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

私はそれを修正するために次のことを行いました: - 、、、および
で目的のフレームを設定します。 - 私を に設定します。- メソッドのオーバーライドで自分と呼び出しを 殺しました。loadViewviewDidLoadviewWillAppearviewDidAppear
wantsFullScreenLayoutNO
[super viewWillAppear:][super viewDidAppear:]

私は何をすべきか?!?!?

0 投票する
1 に答える
2835 参照

iphone - viewDidAppear が実際に表示される前に呼び出されましたか?

この質問はこれと似ているように聞こえますが、回避策については既に認識しています。これはより分析的な質問です。

上記のリンクは に固有の質問ですが、でUITabBarControllerの動作も観察しました。アニメーションなし。UINavigationControllerpushViewController:... animated:NO

したがって、私の質問は、viewDidAppearメソッドの後にビューが表示されるのはなぜですか、その名前はそのビューが既に表示されていることを意味し、定義はそのビューが既に表示されていることを示しています(定義は、ビューがウィンドウに追加されたと述べています)。

メソッドにブレークポイントをマークしてコール スタックを確認しました。プッシュ先のログは次のUINavigationControllerとおりです。

ログは次のとおりです。

0 投票する
3 に答える
703 参照

iphone - シミュレーターで実行しているか、デバイスで実行しているかにかかわらず、iOS の異なる出力

私はまだ非常に奇妙な問題を抱えています。アプリケーションをシミュレーターで実行しているか、iPhone で実行しているかにかかわらず、異なる出力が得られます。

次のコンソール ログを参照してください。

iPhone 初回実行、最初のキャリア セルをクリック

シミュレーターの初回実行、最初のキャリア セルのクリック

iPhoneでは、メソッドのにメソッドwebViewDidFinishLoadが読み込まれるようです。viewDidAppear

ただし、シミュレーターでは、メソッドのwebViewDidFinishLoadにロードされます。viewDidAppear

何を与える?

編集:さらに奇妙なのは、UIScrollView と UIWebView を持つビューコントローラーをロードする最初のセルをクリックしたときにのみ発生することです。メソッドでクリックした後続のセルはすべて、webViewDidFinishLoadメソッドの前にロードされviewDidAppearます。

これを修正できる方法はありますか?

0 投票する
4 に答える
3417 参照

ios - iOS-viewDidAppear:UITableViewを表示するときに遅延

私は奇妙な問題を抱えています。タブバーアプリケーションがあり、さまざまなタブごとにナビゲーションコントローラーを使用しています。各ナビゲーションコントローラーには、コンテンツを表示するための独自のビューコントローラーがあります。

タブをタッチすると、そのタブがビューとともにすぐに読み込まれ、読み込まれた後に(viewDidAppear:)viewDidAppear:メソッドにデータをダウンロードする必要があります。

この機能をテストするために、次のメソッドを設定しました。NSThreadビューがロードされている間にバックグラウンドで実行する必要がある長い操作の実行をシミュレートするためにを使用しています。次に、NSArray * test(nonatomic、retain)にいくつかのテストデータを割り当て、テーブルをリロードします。

メソッドで空の文字列を1つだけ含むようにテーブルを設定しているため、テーブルをリロードしていviewDidLoadます(これは、viewDidAppear:が呼び出される前にテーブルがセットアップされていることを読み取ったためです。

したがって、私の予想される動作は、この特定のタブに触れるとすぐに読み込まれ、10秒後にviewDidAppear:メソッドからのテーブルデータが入力されるはずです。ただし、この動作では、このタブに触れると10秒間待機してから、テーブルデータが入力されたビューが表示されます。

0 投票する
1 に答える
1566 参照

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.

0 投票する
1 に答える
1485 参照

uiwebview - UIWebView:タブ画面でリクエストをロードする場所は? viewDidLoad または viewDidAppear?

タブバーコントローラーがあり、1 つのタブ画面に Web ビューが含まれており、ロード中 (つまり、webview の didload デリゲートメソッド呼び出しの前) に google.com などのリクエストをロードし、別のタブに切り替えてから戻ると、スピナーはまだ実行されていますが、ページは読み込まれません。viewDidLoad は 1 回しか呼び出されないと思います。読み込みコードを viewDidAppear に配置する必要がありますか、それともこれを解決する方法はありますか?

ありがとう!

0 投票する
2 に答える
837 参照

objective-c - 目的 C: viewDidAppear で IBAction showInfo をトリガーする

Xcode 4 で Utility Application テンプレートを使用してアプリを作成しました。

ユーザーが URL を入力できるように、最初の起動時にアプリの裏面を表示する必要があります。

私のmainViewControllerには次のものがあります:

「URL がありません。フリップ」がログに記録され、showInfo メソッドが呼び出されますが、フリップしません。私は何を間違っていますか?

0 投票する
2 に答える
20933 参照

objective-c - viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear のガイドライン

これらの方法を正しい方法で使用するためのガイドラインはありますか? 特に、それらの内部で使用できるコードの種類を知りたいです。

たとえば、WS からデータを取得するメソッドを呼び出す必要がある場合、どこで呼び出す必要がありますか? NSNotification はどこで登録/登録解除できますか? 等

0 投票する
2 に答える
1818 参照

iphone - ViewDidAppearはタブバーベースのアプリでは呼び出されません

私は問題があります。私はタブバーベースのアプリであるアプリに取り組んでいます。このアプリでは[self.view addSubview:newVC.view]、新しいビューに移動したいときに呼び出します。newVCは、表示する新しいビューのビューコントローラーです。また[self.view removeFromSuperview]、前のビューに戻りたいときに使用します。

つまり、ナビゲーションコントローラーはありません。ここで問題となるのは、前のビューを更新したいということです。を使用しているため[self.view removeFromSuperview]viewDidAppear前のビューは呼び出されず、そのビューを更新する方法がありません。

私たちが使用したアプローチには欠陥があることは知っていますが、大規模なアプリであり、ナビゲーションコントローラーを実装するために変更するのに時間がかかるため、この問題の解決策を見つけるのを手伝ってください。サブビューから呼び出すときに、viewDidLoadまたはviewDidAppearまたは前のビューを呼び出すにはどうすればよいですか?[self.view removeFromSuperview]

0 投票する
1 に答える
3527 参照

xcode - アプリの起動時にviewDidAppearのperformSelector:withObject:afterDelayが機能しない

0.1f秒後に起動するには、いくつかのコードをviewDidAppearから新しいセレクターに移動する必要があります。だから私は次のようなことをしました:

アプリケーションを起動しても何も起こらず、「表示開始」が表示されません。ビューを変更してから最初のビューに戻ると、機能しています。

誰もが理由を知っていますか?