ビューコントローラーのviewDidLoadメソッドでAPIを呼び出しているIOSアプリを作成しています。サーバーからのデータを同じビューコントローラーにリロードしたいと思います。方法はいくつありますか?このタスクを実行するには、最善の方法は何ですか??私を助けてください。
ありがとう!
viewDidLoad
メソッドは、UIViewController
が最初にロードされたときに最初に呼び出され、ポップしてから再入力したときに呼び出されますviewDidLoad
が呼び出されます。したがって、APIを1回だけロードする場合は、viewDidLoad
がAPIを呼び出すのに最適な場所です。
viewWillAppear
そのUIViewController
を入力するたびに呼び出され、更新されたデータ(更新されたデータ)を取得するときにAPIをロードする場所です。
viewDidAppear
viewWillAppear
のように呼び出されますが、viewWillAppear
よりも少し遅れて呼び出されるため、毎回APIを呼び出したい場合は、viewWillAppear
メソッドが最適です。
viewDidAppear
メソッドがviewWillAppear
メソッドから遅れて呼び出され、APIをリクエストしているだけなので、APIの応答が遅くなる可能性があり、APIの応答に基づいてUIが変更されると、アプリケーションUIがスタックするため、APIを呼び出すのに最適な場所があります- viewDidLoad
&viewWillAppear
メソッド。
viewDidLoadが1回呼び出されます。 navigation controllerを使用し、前後にou view controller this viewDidLoadメソッドが呼び出されることはありません。このViewControllerを再度作成するまで(つまり、[navContoller pushViewController])。 api dataが変更されない場合ライフサイクルこのView Controllerこれはより良い場所から- APIを呼び出す。ただし、api dataが頻繁に呼び出す [つまり、 back and Push.forth this view controller]次に、apiを呼び出さないでくださいここにあります。
viewWillAppear:View Controllerが表示される前。このメソッド内でapiを呼び出すと、データの読み込みが完了するまでUIがスタックされます。これは奇妙に見えます。viewControllerのビューをロードする前に、この「viewWillAppear」メソッドが呼び出されます。これが理由で、その名前は「viewWillAppear」です。つまり、このビューはしばらく後に(つまり、数マイクロ秒後に)読み込まれます。何が起こるか後にここでAPIを呼び出す場合は、分析してみましょう。たとえば、APIは10秒後に応答を返します。次に、UIが10秒間フリーズ/スタックし、この10秒後にビューが呼び出されるのがわかります。
viewDidAppear:ビューコントローラーの表示が終了した後、このメソッド内で読み込みAPIを呼び出す必要があります。
ビューコントローラに移動するたびに[〜#〜] api [〜#〜]を呼び出す必要はありません。呼び出す必要があります。時間。
TableViewとCellがあり、このセルが[〜#〜] api [〜#〜]そして新しいViewControllerを開きますあなたがそれを押すとき。
したがって、ここでは[〜#〜] api [〜#〜]を:に追加しません。
viewDidLoad()に一度追加しますが、リクエストの数をできるだけ少なくする必要があります。
このような例:ナビゲーションコントローラー:
fruits and Carsが[〜#〜] api [〜#〜]から表示されるとします。
フルーツセルをクリックすると、viewControllerの下に移動します。
したがって、最初のView Controllerに戻りたい場合は、APIがすでに存在している間にリロードする必要がないことは明らかです。
この場合、viewDidLoad()を使用して[〜#〜] api [〜#〜]リクエスト
viewDidAppear
は間違いなく使用したいものではなく、データの読み込み中にビューの応答を「一時停止」します。
通常、viewDidLoad
は配置したいものです。
同じViewControllerにとどまると、viewdidload、viewwillappear、viewdidappearの3つのメソッドは再度呼び出されません。したがって、同じView Controllerにとどまり、サーバーからデータを取得します。データを取得した後、reloadメソッドを呼び出す必要があります。この答えがお役に立てば幸いです。
ViewWillAppearはAPIからデータをロードするのに最適な場所だと思います。 viewDidLoadは、ビューがロードされているときに1回呼び出されますが、viewWillAppearは、親ビューまたは子ビューからロードされたときに呼び出されるためです。