Ugh bitte helfen .... Ich bin neu in Swift (Codierung im Allgemeinen), aber ich habe diesen gleichen Code verwendet, um eine frühere App, die eine VC mit 1 Textfeld hatte , eine Bewertungskontrolle und ein Bild und hat gut funktioniert. Diese Version hat zwei Textfelder und eine Datumsauswahl, aber nur die Beispieldaten werden in der Tabelle angezeigt, wenn Sie versuchen, ein neues Element hinzuzufügen.Konnte nicht neue Artikel in Tabelle speichern
Klicken Sie auf die Schaltfläche +, um zur nächsten Seite zu gelangen, auf der Sie neue Informationen hinzufügen können (siehe unten). Wenn Sie speichern, werden die neuen Informationen in der Tabellenansicht angezeigt.
Import UIKit
Klasse BudgetTableViewController: UITableViewController {
//Properties
var budgets = [Budget]()
override func viewDidLoad() {
super.viewDidLoad()
loadSampleBudgets()
}
func loadSampleBudgets() {
let budget1 = Budget(date: "8/16/2016", name: "Eyebrows", amount: "15")!
let budget2 = Budget(date: "8/28/2016", name: "Acme", amount: "59")!
let budget3 = Budget(date: "9/10/2016", name: "Wildwood", amount: "199")!
budgets += [budget1, budget2, budget3]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return budgets.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "BudgetTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! BudgetTableViewCell
let budget = budgets[indexPath.row]
cell.dateLabel.text = budget.date
cell.nameLabel.text = budget.name
cell.amountLabel.text = budget.amount
return cell
}
@IBAction func unwindToMealList(sender: UIStoryboardSegue) {
if let sourceViewController = sender.sourceViewController as? BudgetViewController, budget = sourceViewController.budget {
//Add a new meal
let newIndexPath = NSIndexPath(forRow: budgets.count, inSection: 0)
budgets.append(budget)
}
}
zweite VC brechen
Import UIKit
Klasse BudgetViewController: UIViewController, UITextFieldDelegate, UINavigationControllerDelegate {
// Properties:
@IBOutlet weak var datePicker: UIDatePicker!
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var amountTextField: UITextField!
@IBOutlet weak var dateDisplay: UILabel!
@IBOutlet weak var saveButton: UIBarButtonItem!
var budget: Budget?
// Date picker:
let dateFormatter = NSDateFormatter()
func setDate() {
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
dateDisplay.text = dateFormatter.stringFromDate(datePicker.date)
}
// Navigation
// This method lets you configure a view controller before it's presented
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if saveButton === sender {
let name = nameTextField.text ?? ""
let date = dateDisplay.text ?? ""
let amount = amountTextField.text ?? ""
// set the budget to be passed to the Controller, this code configures the meal prperty with the appropriate values before the segue executes
budget = Budget(date: date, name: name, amount: amount)
}
}
// Actions:
@IBAction func datePickerChanger(sender: AnyObject) {
setDate()
}
override func viewDidLoad() {
super.viewDidLoad()
// Handle the text field
nameTextField.delegate = self
amountTextField.delegate = self
}
// UITextFieldDelegate
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
func textFieldDidEndEditing(textField: UITextField) {
}
}
könnten Sie bitte verstehen sie etwas mehr zu Screenshot entsprechend und erklären aktualisieren, bei denen Artikel –
Sie nicht hinzugefügt müssen Sie nach dem Hinzufügen neuer Daten zu seiner DataSourceData() in Ihrem TableView neu laden, oder habe ich es gerade nicht gesehen? :-) –
Könnten Sie Ihr Projekt auf GIT hochladen, oder senden Sie es mir per E-Mail? –