問題タブ [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 投票する
4 に答える
10625 参照

iphone - viewDidAppearを手動で呼び出す正しい時間ですか?

UITableViewControllerのアプリには、ビュー階層に直接追加されたがあります。ビューが表示されたら、特定のセルにスクロールします。私の解決策は、でスクロールするためのコードを呼び出すことです-[viewDidAppear]

Appleのドキュメントによると、メソッドを手動で呼び出す必要があります。

ビューコントローラに属するビューがビュー階層に直接追加された場合、ビューコントローラはこのメッセージを受信しません。ビューをビュー階層に挿入または追加し、ビューコントローラがある場合は、関連するビューコントローラにこのメッセージを直接送信する必要があります。

問題は、手動で呼び出すのに適切なタイミングはいつかということです。

親ビューコントローラから呼び出すと-[viewDidAppear]、スクロールを実行しようとするとクラッシュが発生します。これは、テーブルビューが実際にまだ表示されていないため、スクロールするセクションがないと考えているためです。

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

uinavigationcontroller - viewDidAppearがTabbarcontroller>NavigationController>UITableViewで起動しない

現在、タブの1つにナビゲーションコントローラーが設定されたタブバーコントローラーがあり、次にそのナビゲーションコントローラービュー用にUITableViewペン先が設定されています。これらはすべてIBを通じて設定されており、私はそれを維持したいと思っています。このチュートリアルhttp://twilloapp.blogspot.com/2009/05/how-to-embed-navigation-controller.htmlのよう に、ViewDidLoadが呼び出されたときにビューが完全に読み込まれるようになりました。しかし、コードIEを介してさらにビューをロードすると

ナビゲーションツールバーを使用して戻ろうとすると、以前のビューに正常に戻ります。戻ったときにテーブルビューを更新する必要がありますが、呼び出しviewDidAppearが機能しません。

UINavigationDelegateテーブルビューと同じクラスに追加してからViewController呼び出してみました- (void)navigationController:(UINavigationController *)navigationController didShowViewController:

しかし、それはうまくいきませんでした。また、タブバーコントローラーと同じデリゲートを追加してnavigationController didShowViewController:そこに追加しようとしましたが、それも失敗しました。

ビューが読み込まれるたびにこのテーブルを更新するにはどうすればよいですか?

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

iphone - viewDidAppearのUIViewにアニメーションを追加するには?

viewDidLoad と viewDidAppear にアニメーションを追加しようとしましたが、うまくいきません:

なんで?

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

iphone - ViewDidAppear を 1 回だけ呼び出すにはどうすればよいですか?

ユーザーがアプリを起動すると、stockholm.xib が表示され、ここで実行されます。

ただし、ユーザーが以下を使用してstockholm.xibを閉じると:

アニメーションが完了すると、アプリがクラッシュします。その理由は、viewDidAppear が 2 回呼び出されるため、最近閉じた xib ファイルを開こうとしているからだと思います。

さて、一度だけ表示されたビューを呼び出すにはどうすればよいですか? ユーザーがストックホルムから戻ってきたときにviewDidAppearが呼び出されないようにするには? 他の解決策はありますか?

ありがとう:)

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

iphone - ViewDidAppear、ViewDidLoad、ViewWillAppear、コンストラクターにサブビューをプログラムで追加しますか?

私は、Apple の大ざっぱなドキュメントから、Views コントロールを初期化してコントローラーのビューに追加するのに最適な方法を見つけようとしています。

winforms を使用すると、常に内部で初期化InitializeDesignerされ、コンストラクターで呼び出されるため、かなり簡単です。可能であれば、このパターンの信頼性を一致させようとしています。

ほとんどの場合、私は一緒にUIViewControllers、そしてUITableViewControllers内部で作業しUINavigationControllerています-これがすべてに影響する場合。

次に例を示します。

いくつかの UIControl を別の場所でビューに追加すると、さまざまな結果が得られます。視覚的な遅延が発生することもあれば、Web ビューがどこかに隠されていることもあります。

それらを追加するための一般的な規則はありますか?

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

iphone - iPhone が揺れる問題: viewController の読み込み時に viewDidAppear が呼び出されない

私はiPhoneデバイスで揺れを検出しようとしているので、私が読んだことについては、ビューコントローラーをviewDidAppearメソッドのファーストレスポンダーとして設定する必要があります。このメソッドは自動的に呼び出されるはずですが、何らかの理由でこのメソッドが呼び出されません。viewDidLoad のみが呼び出されます。

これは私のコードです(関連する部分のみを配置します):

BuildHouseViewController.h:

@interface BuildHouseViewController : UIViewController {

BuildHouseViewController.m:

viewDidAppear メソッドにブレークポイントを追加しましたが、呼び出されません。シェイクが検出されないのは、このメソッドが呼び出されないため、View Controller がファーストレスポンダーにならないためだと思います。なぜこれが起こっているのかわかりません。

どんな助けでも大歓迎です。

編集:

次を使用して、別のビューからビューを呼び出します。

ビューが画面に表示されます

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

uiactivityindicatorview - 行データがフェッチされている間のテーブル ビューでのアクティビティ インジケーターの表示

tableview1.row から、大量の行がフェッチされている tableview2 に移動しています。ロード時間が約 3 秒であることを考えると、tableview1.row が選択されるとすぐにナビゲーションが tableview2 にスライドし、データがフェッチされて基になるテーブル ビューにレンダリングされる間、tableview2 の上に UIActivityIndi​​catorView を表示する必要があります。tableview2 は実際には親 UIView のサブビューであることに注意してください (親が UITableView であるのとは対照的です)。

この投稿を見ました: UITableView1 から UITableView2 に移動するときに、アクティビティ インジケーターを表示する必要があります。

... これは、データ フェッチに関するアクティビティ インジケーターの start および stopAnimating 呼び出しを tableview2 の viewDidLoad に追加するように指示します。

つまり、tableview2が目に見えてスライドする前にviewDidLoadが実行されて完了すると、上記のソリューションがどのように機能するかわかりません。

これとは別に、IB の tableview2 にアクティビティ インジケーターを追加してみました。また、IBOutlet インジケーターの開始/停止アニメーション コードを viewDidAppear に追加しました。何が起こるかというと、データ フェッチが実行され、インジケーターが回転していることがわかりますが、フェッチの最後にテーブル ビューが空になります。cellForRowAtIndexPathなどがすでに起動しているため、viewDidAppearが遅すぎてテーブルビューにデータを追加できないようです。

誰でもポインタを提案できますか? ここで明らかな何かを見落としている可能性が非常に高いです (私がいる場所は午前 5 時近くで、脳がドロドロしていると思います)。viewDidAppear から cellForRowAtIndexPath などを再トリガーする必要がありますか? テーブル ビューが親ビューではなくサブビューであるという問題はありますか?

ありがとう

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

iphone - 「viewDidLoad」を使用すると、viewController が表示されるまでに時間がかかります。

ビューコントローラーをロードするとき、ビューを初期化するために「viewDidLoad」メソッドを使用しましたが、ビューが表示されるまでに時間がかかります。ビューに関する情報は、ビューをプッシュするたびに (これは正常です)、またはビューにポップするたびに (そして私の問題があります) メモリにロードされるようになりました。