次は、タブバーが2度目にタップされたかどうかを検出するさまざまなソースのコードです。Swift 3タブバーをタップしてテーブルビューの一番上にスクロールする方法
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
var previousController: UIViewController? = nil
if previousController == viewController {
// the same tab was tapped a second time
print("scroll to top")
if viewController.responds(to: #selector(self.scrollToTop)) {
viewController.perform(#selector(self.scrollToTop))
}
}
previousController = viewController
}
func scrollToTop() {
self.tableView.contentOffset = CGPoint(x: CGFloat(0), y: CGFloat(0 - self.tableView.contentInset.top))
}
もう一度タブバーをタップすると、印刷(「上にスクロール」)は呼び出されません。私のコードで何が問題になるのでしょうか?
previousControllerをそのクラスのインスタンスとして宣言することはどういう意味ですか? – Wilson
これは、このようなクラスで表示される変数として作成する必要があります クラスsmapleClassName:UIViewController { var previousController:UIViewController! override func viewDidLoad(){ super.viewDidLoad() } –