【发布时间】:2021-05-09 13:31:48
【问题描述】:
当我在 SecondVC 的 tableViewCell 中选择 UIbutton 的文本时,我试图将它设置为 selectedCity 变量。我不能使用 segue 或 tabBarController。 Updated photo of ui
第一VC
import UIKit
class homeView: UIViewController{
@IBOutlet weak var selectRegion: UIButton!
}
第二个VC
import UIKit
class selectCityPage: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var selectedCity: String!
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == 0{
selectedCity = "Almaty"
}
if indexPath.row == 1{
selectedCity = "Усть-Каменогорск"
}
dismiss(animated: true, completion: nil)
// when this view controller is dismissed, uibutton's text in next viewcontroller should equal to selectedCity
}
}
【问题讨论】:
-
使用委托可以实现这一目标
-
您可以使用 NotificationCenter 来实现,请参考 learnappmaking.com/… 在 ViewControllers 之间传递数据的教程
-
我回答了您的问题,但您能否展示一下您是如何展示 FirstVC 的 SecondVC 的?我需要一个 SecondVC 的实例来设置委托。
-
我在第一个和第二个 vc 之间有一个导航控制器。
-
要呈现第二个 vc,我应该点击 uibutton,而不是点击其他导航控制器中的其他按钮,而不是呈现第二个 vc