gpt4 book ai didi

ios - 主视图未使用详细 View 中的委托(delegate)进行更新

转载 作者:行者123 更新时间:2023-11-30 12:16:18 27 4
gpt4 key购买 nike

当用户点击详细 View 中的 UIBarButtonItem(代表收藏夹按钮)时,我尝试更新 UISplitView 中的主视图。由于某种原因,委托(delegate)方法永远不会被调用。相关代码如下。有什么建议吗?

import UIKit
import WebKit

protocol FavouriteCaseDelegate: class {
func updateMasterForFavouriteStatusChange(caseID: Int, favouriteStatus: Bool)
}

class DetailViewController: UIViewController, UITableViewDelegate, UITableViewDataSource

weak var favouriteDelegate: FavouriteCaseDelegate? = nil

override func viewDidLoad() {
super.viewDidLoad()

//Configure favourite bar button
favouriteButton = UIButton.init(type: .custom)
if caseFavourited == false {
favouriteButton.setImage(UIImage(named: "FavouriteIcon"), for: UIControlState.normal)
} else {
favouriteButton.setImage(UIImage(named: "FavouriteIconSelected"), for: UIControlState.normal)
}
favouriteButton.addTarget(self, action:#selector(didTapFavouriteBarButton), for: UIControlEvents.touchUpInside)
favouriteButton.frame = CGRect.init(x: 0, y: 0, width: 30, height: 30)
let favouriteBarButton = UIBarButtonItem.init(customView: favouriteButton)
self.navigationItem.rightBarButtonItem = favouriteBarButton
}

func didTapFavouriteBarButton() {
caseFavourited = !caseFavourited

CaseManager.caseWorker.changeFavouritedStateForCase(subjectID: subjectID, caseID: caseID, isFavourited: caseFavourited)

favouriteDelegate?.updateMasterForFavouriteStatusChange(caseID: caseID, favouriteStatus: caseFavourited)
}
<小时/>
import UIKit

class MasterTableViewController: UITableViewController, FavouriteCaseDelegate {

func updateMasterForFavouriteStatusChange(caseID: Int, favouriteStatus: Bool) {
print("updateMasterForFavourite called")
self.tableView.reloadData()

}
}

最佳答案

在您的 MasterTableViewController 类中,您需要将 DetailViewController-> favouriteDelegate 设置为 self 例如:-

//Assuming you have reference of detailViewController inside your MasterTableViewController class
let detailViewController = DetailViewController()
detailViewController.favouriteDelegate = self

Once set the delegate and invoke the method then it should called.

关于ios - 主视图未使用详细 View 中的委托(delegate)进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45402523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com