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;
私の感じでは、これはナビゲーションコントローラー内のネストされたビュー階層がリフレッシャーコントロールでうまく機能していないことと関係があります-何か提案はありますか?
ありがとう