Проблема с переходом / отключением при создании списка приложений - PullRequest
0 голосов
/ 20 сентября 2018

Я новичок в кодировании, поэтому, пожалуйста, потерпите меня.Я следил за онлайн-учебником, который работал со списками, чтобы составить список привычек.У меня есть контроллер табличного представления, который показывает список привычек и последовательность, которая представляет модально контроллер представления, который имеет текстовые поля для добавления привычки.

введите описание изображения здесь Каждый раз, когда он запускаетсяничего не происходит, когда я нажимаю на кнопки «Сохранить» и «Отмена».Я понимаю, что это неопределенный вопрос, так как он не указывает на конкретную проблему, но я действительно изо всех сил пытаюсь решить эту проблему и был бы очень признателен, если бы кто-то вычитал код.Приложение собирается и работает без предупреждений.

Это контроллер представления таблицы, который показывает привычки:

 class TableViewController: UITableViewController {

//MARK: Properties

var habits = [Habit]()

//MARK: - Table view data source

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return habits.count
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    // Table view cells are reused and should be dequeued using a cell identifier.

    guard let cell = tableView.dequeueReusableCell(withIdentifier: "cell") else {
        fatalError("The dequeued cell is not an instance of ViewController.")
    }


    // Fetches the appropriate habit for the data source layout.
    let habit = habits[indexPath.row]

    cell.textLabel?.text = habit.mainGoal
    cell.detailTextLabel?.text = habit.microGoal

    return cell
}

@IBAction func unwindToHabitList(sender: UIStoryboardSegue) {
    if let source = sender.source as?ViewController, let habit = source.habit {

        //add a new habit

        let newIndexPath = IndexPath(row: habits.count, section: 0)
        habits.append(habit)
        tableView.insertRows(at: [newIndexPath], with: .automatic)
    }
}

Это контроллер представления, который добавляет привычку:

 class ViewController: UIViewController, UITextFieldDelegate, UINavigationControllerDelegate {

@IBOutlet weak var saveButton: UIBarButtonItem!
@IBOutlet weak var mainGoalTextField: UITextField!
@IBOutlet weak var microGoalTextField: UITextField!


var habit: Habit?

//method for configuring controller before presenting

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

super.prepare(for: segue, sender: sender)
//configure this destination view controller only when save button is pressed
guard let button = sender as? UIBarButtonItem, button === saveButton else {
        os_log("save button was not pressed, cancelling", log: OSLog.default, type: .debug)
        return
    }

let mainGoal = mainGoalTextField.text ?? ""
let microGoal = microGoalTextField.text ?? ""

//set the habit to be passed on to tableViewController after the unwind segue
habit = Habit(mainGoal: mainGoal, microGoal: microGoal)
}


@IBAction func cancel(_ sender: UIBarButtonItem) {
    // Depending on style of presentation (modal or push presentation), this view controller needs to be dismissed in two different ways.
    let isPresentingInAddHabitMode = presentingViewController is UINavigationController

    if isPresentingInAddHabitMode {
        dismiss(animated: true, completion: nil)
    }
    else if let owningNavigationController = navigationController{
        owningNavigationController.popViewController(animated: true)
    }
    else {
        fatalError("The ViewController is not inside a navigation controller.")
    }
}

Я ценю всех и каждогопомогите заранее!

СОЕДИНЕНИЯ РАСПОЛОЖЕНИЯ:

ПОДКЛЮЧЕНИЯ КОНТРОЛЛЕРА ТАБЛИЦЫ ДОБАВИТЬ СОЕДИНЕНИЯ С КОНТРОЛЛЕРОМ ПРОСМОТРА ВИДА

...