我在我的项目中运行了两个tableView。我已成功地在两个tableView之间传递数据,并使用segue将其作为tableView数组保存到我的第二个tableView中。我有另一个函数使用tabBar按钮连接我的第二个tableview。每当我按下tabBar按钮时,它会在indexPath:0处创建一个空白的tableViewCell。我能理解为什么会这样,但我不知道该如何制止。我的代码在下面
的AppDelegate:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let defaultValues = ["NewArray": [String]()]
UserDefaults.standard.register(defaults: defaultValues)
return true
}
我的第二个VC
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let defaults = UserDefaults.standard
newArray = defaults.array(forKey: "NewArray") as! [String]
// newArray.append(newItem)
newArray.insert(newItem, at: 0)
defaults.set(newArray, forKey: "NewArray")
self.favTableView?.reloadData()
}
提前致谢...
答案 0 :(得分:2)
实际上最简单的解决方案是检查newItem
是否为空,因为如果视图是从segue呈现的,则(非空)字符串将传递给newItem
属性。
override func viewDidLoad() {
super.viewDidLoad()
let defaults = UserDefaults.standard
newArray = defaults.array(forKey: "NewArray") as! [String]
// newArray.append(newItem)
if !newItem.isEmpty {
newArray.insert(newItem, at: 0)
defaults.set(newArray, forKey: "NewArray")
}
self.favTableView?.reloadData()
}