UITableViewController(UINavigationController内にあります)にUIRefreshControlを設定しましたが、期待どおりに機能します(つまり、プルダウンで正しいイベントが発生します)。ただし、次のようにプログラムでbeginRefreshing
更新コントロールのインスタンスメソッドを呼び出すと、
[self.refreshControl beginRefreshing];
何も起こりません。アニメートしてスピナーを表示します。endRefreshing
私はリフレッシュした後、それを呼び出したときに方法が正しく動作します。
私はこの動作で基本的なプロトタイププロジェクトを作成しましたが、UITableViewControllerがアプリケーションデリゲートのルートビューコントローラーに直接追加された場合、正しく動作します。例:
self.viewController = tableViewController;
self.window.rootViewController = self.viewController;
しかし、tableViewController
最初にUINavigationControllerにを追加し、次にナビゲーションコントローラーをとして追加するrootViewController
と、beginRefreshing
メソッドは機能しなくなります。例えば
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tableViewController];
self.viewController = navController;
self.window.rootViewController = self.viewController;
これは、ナビゲーションコントローラ内のネストされたビュー階層がリフレッシャコントロールでうまく機能していないことに関係していると思います-何か提案はありますか?
ありがとう