gpt4 book ai didi

ios - 使用 SJSegmented 之后从其他 View Controller 重新加载 TableView

转载 作者:行者123 更新时间:2023-11-30 11:53:15 25 4
gpt4 key购买 nike

我有第一个 View Controller ,其中包括分段 Controller (SJSegmented Controller)。它带有一个功能,我可以知道用户位于哪个段并更改加载其他 View Controller 的数据的 php,但是当我到达包含 TableView 的 View Controller 时,Viewdidload 和 Viewdidappear 仅执行一次并且在用户更改段后,Viewdidload 和 Viewdidappear 不会加载。

这是来自第一个 View Controller (分段 Controller )的代码。

func didMoveToPage(_ controller: UIViewController, segment: SJSegmentTab?, index: Int) {
if selectedSegment != nil {
selectedSegment?.titleColor(.gray)
}
if segments.count > 0 {
selectedSegment = segments[index]
}
// Checks witch segment the user is at and change the php to load accordingly
let CurrSeg = index
print(CurrSeg)
let Curr = String(CurrSeg)
if Curr == "0" {
UserDefaults.standard.set(“xyz.php”, forKey: "DealsPHP")
UserDefaults.standard.synchronize()
} else if Curr == "1" {
// UserDefaults.standard.set("hwy.php", forKey: "DealsPHP")
// UserDefaults.standard.synchronize()
} else if Curr == "2" {
UserDefaults.standard.set("uys.php", forKey: "DealsPHP")
UserDefaults.standard.synchronize()
} else if Curr == "3" {
UserDefaults.standard.set("wrt.php", forKey: "DealsPHP")
UserDefaults.standard.synchronize()
}
}

我希望在执行 didMoveToPage 时重新加载另一个 View Controller 的 TableView 。

第二个 View Controller 的代码(包括表格 View )

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
tableView.reloadData()
}

PS:当执行 didMoveToPage 时,它​​会更改 php 并使用更改后的 php 加载相同的 View Controller 。

这是填充 TableView 的代码:

func get() {

let DealsPHP: String = (UserDefaults.standard.object(forKey: "DealsPHP") as? String)!
let url = URL(string: DealsPHP)
let data = try? Data(contentsOf: url!)

if data == nil {

// Create the alert controller
let alertController = UIAlertController(title: "No Internet Connection", message: "It looks like you aren't connected to the Internet. Please check your internet connection and try again.", preferredStyle: .alert)

// Create the actions
let okAction = UIAlertAction(title: "Try Again", style: UIAlertActionStyle.default) {
UIAlertAction in

self.get()
}

// Add the actions
alertController.addAction(okAction)

// Present the controller
self.present(alertController, animated: true, completion: nil)
} else {
self.values = try! JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSArray
self.tableView.reloadData()
}
}

最佳答案

这个问题由@sweepez 解决。我在 if Curr == "1"{} ** 中添加了此代码 **func didMoveToPage 每次段更改时都会重新加载 tableview 的数据

let myController = controller as! YourControllerName
myController.get()

关于ios - 使用 SJSegmented 之后从其他 View Controller 重新加载 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48122948/

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