检测并删除Swift中的空白tableViewCell

检测并删除Swift中的空白tableViewCell,swift,uitableview,nsuserdefaults,Swift,Uitableview,Nsuserdefaults,我的项目中运行了两个tableView。我已成功地在两个tableView之间传递数据,并使用segue将其作为tableView数组保存到我的第二个tableView中。我还有另一个使用tabBar按钮连接第二个tableView的功能。每次按tabBar按钮时,它都会在indexath:0处创建一个空白tableViewCell。我能理解为什么会发生这种情况,但我不知道如何停止。下面是我的代码 AppDelegate: func application(_ application:

我的项目中运行了两个tableView。我已成功地在两个tableView之间传递数据,并使用segue将其作为tableView数组保存到我的第二个tableView中。我还有另一个使用tabBar按钮连接第二个tableView的功能。每次按tabBar按钮时,它都会在indexath: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()
   }

提前感谢…

实际上最简单的解决方案是检查
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()
}

实际上,最简单的解决方案是检查
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()
}

每次调用
viewDidLoad
时,都会插入一个新项。如果
newItem
为空字符串,则该行似乎为空。您可以重新考虑按需插入项目的设计。@瓦迪安,您能详细说明一下吗……ThanksI写了一个答案。每次调用
viewDidLoad
时,都会插入一个新项目。如果
newItem
为空字符串,则该行似乎为空。您可能会重新考虑按需插入项目的设计。@vadian您能否详细说明一下……ThanksI写了一个答案。