مشكلة اظهار سطر جديد فارغ في tableView عند الضغط على الرجوع
Hashem • منذ 6 سنوات
السلام عليكم
اهل الخبره في سويفت
انا لدي مشروع تطبيق ايفون بقاعدة بيانات CoreData مشكلتي اذا دخلت على صفحة اضافة البيانات ثم ضغط على زر الرجوع دون ان اضيف بيانات يقوم بإضافة سطر فارغ في الجدول هل من ممساعدة
هذه الاكواد المستخدمه
//
// AddVC.swift
// NoteCard
//
// Created by Hashem on ١٤ رمضان، ١٤٣٩ هـ.
// Copyright © ١٤٣٩ هـ Hashem. All rights reserved.
//
import UIKit
import CoreData
class AddVC: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate,UITextFieldDelegate {
@IBOutlet weak var subject: UITextField!
@IBOutlet weak var emailText: UITextField!
@IBOutlet weak var userNameText: UITextField!
@IBOutlet weak var passwordText: UITextField!
@IBOutlet weak var othreDataText: UITextView!
@IBOutlet weak var myPickerView: UIPickerView!
@IBOutlet weak var myView: UIView!
//var newNote: MyNotes!
var newNote = MyNotes(context: context)
var dataPiker = ["فيزا","ماستركارد","ايميل","بطاقة","ابل ستور","ابل","تويتر","سناب شات","انستقرام","ايكلاود","ملف","اندرويد"]
override func viewDidLoad() {
super.viewDidLoad()
myView.isHidden = true
myPickerView.delegate = self
myPickerView.dataSource = self
}
// MARK: -
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return dataPiker.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return dataPiker[row]
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let item = dataPiker[row]
let visa = UIImage(named: "visa.png")
let mastercard = UIImage(named: "mastercard.png")
let creditCard = UIImage(named: "creditCard.png")
let email = UIImage(named: "email.png")
let android = UIImage(named: "Android.png")
let apple = UIImage(named: "apple.png")
let appStore = UIImage(named: "AppStore.png")
let file = UIImage(named: "file.png")
let instagram = UIImage(named: "instagram.png")
let snapchat = UIImage(named: "snapchat.png")
let twitter = UIImage(named: "tw.png")
let iCloud = UIImage(named: "iCloud.png")
//newNote = MyNotes(context: context)
switch(item){
case "فيزا":
newNote.image = visa
case "ماستركارد":
newNote.image = mastercard
case "بطاقة":
newNote.image = creditCard
case "ايميل":
newNote.image = email
case "اندرويد":
newNote.image = android
case "ابل":
newNote.image = apple
case "ابل ستور":
newNote.image = appStore
case "ملف":
newNote.image = file
case "انستقرام":
newNote.image = instagram
case "سناب شات":
newNote.image = snapchat
case "تويتر":
newNote.image = twitter
case "ايكلاود":
newNote.image = iCloud
default: break
}
}
@IBAction func saveButton(_ sender: Any) {
newNote.subject = subject.text!
newNote.data = emailText.text!
newNote.username = userNameText.text!
newNote.password = passwordText.text!
newNote.othrdata = othreDataText.text!
newNote.date = NSDate() as Date
navigationController?.popViewController(animated: true)
// performSegue(withIdentifier: "GoTable", sender:self)
do{
ad.saveContext()
print("title \(newNote)")
ProgressHUD.showSuccess("تمت الاضافة")
}
catch{
ProgressHUD.showError("لم تتم الاضافة")
print("Error")
}
}
@IBAction func backButton(_ sender: Any) {
navigationController?.popViewController(animated: true)
//performSegue(withIdentifier: "GoTable", sender:self)
}
@IBAction func pickerButton(_ sender: Any) {
if myView.isHidden {
myView.isHidden = false
}
}
@IBAction func seleactButton(_ sender: Any) {
myView.isHidden = true
}
@IBAction func addImageButton(_ sender: Any) {
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
}
كود tableView
import UIKit
import CoreData
import GoogleMobileAds
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,GADBannerViewDelegate {
var listNotes = [MyNotes]()
@IBOutlet weak var myTableView: UITableView!
@IBOutlet weak var myBanner: GADBannerView!
override func viewDidLoad() {
super.viewDidLoad()
// myTableView?.rowHeight = 250
myTableView.delegate = self
myTableView.dataSource = self
AdDidLoad()
// performSegue(withIdentifier: "Show", sender:self)
}
override func viewDidAppear(_ animated: Bool) {
self.listNotes.removeAll()
loadNotes()
myTableView.reloadData()
}
// MARK: - Delegate TableView
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return listNotes.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! NotesCellTV
cell.SetCell(note: listNotes[indexPath.row])
return cell
}
// MARK: - ميثود الضغط على السطر او الخليه
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let informaton = listNotes[indexPath.row]
performSegue(withIdentifier: "GoToPage", sender:informaton)
}
// MARK: - ميثود ارسال المعلومات للصفحه الثانيه
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let ShowView = segue.destination as? ViewContentVC {
ShowView.Item = sender as! MyNotes;()
}
}
// // MARK: -
func loadNotes() {
let fetchRequest: NSFetchRequest<MyNotes> = MyNotes.fetchRequest()
//ــ كود ترتيب البيانات اضافة المعلومات حسب التاريخ او اخر اضافة ــ//
let dateAdd = NSSortDescriptor(key: "date", ascending: false)
fetchRequest.sortDescriptors = [dateAdd]
do{
listNotes = try context.fetch(fetchRequest)
myTableView.reloadData()
}catch{
}
}
صور توضيحيه للمشكله
كلمات دليلية:
swift
ساعد بالإجابة
"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."
الإجابات (1)
عمر الشمري • منذ 6 سنوات
هلا هاشم.
فيه بعض الاشياء في الكود تحتاج توضيح
MyNotes(context. context)
من وين جاء المتغير هذا context
و برضو
ad.saveContext()
من وين جاء المتغير ad
و هل تستخدم لايبرريز مساعدة في الكور داتا؟
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !