Я застрял на этом сейчас часами и часами, я просто не могу понять, как это сделать, и я получаю туннельное видение с этим, поэтому мне нужна помощь. Итак, вот кости моего приложения надеются, что вы сможете помочь ...Quiz app: сохранение выбранных вопросов викторины с использованием NSUserDefaults и отображение их в другом контроллере представления
Я создаю приложение для викторины. У меня есть часть викторины, то есть я создал структуру и определил раздел вопросов и ответов. Затем я отображаю вопросы на экране и скрываю ответ до тех пор, пока пользователь не нажмет кнопку ответа на выявление. Пользователи могут прокручивать влево или вправо, чтобы идти вперед или назад между вопросами.
Я хочу включить пользователя, позволяющего пользователю сохранять некоторые вопросы и возвращаться к ним в другом контроллере представления на более позднем этапе. Когда нажата кнопка сохранения, я хочу, чтобы вопрос сохранялся и помещался в сохраненный контроллер просмотра. Я хочу, чтобы это было в форме вопроса, поэтому я могу позволить пользователю просмотреть все их сохраненные вопросы. Я пытался сэкономить, используя NSUserDefaults.
Код для Вопросов просмотр контроллера:
import Foundation
import UIKit
struct Question {
var Question : String!
var Answers : String!
}
class Defence: UIViewController {
@IBOutlet weak var labelForQuestion: UILabel!
@IBOutlet weak var textBoxForAnswer: UITextView!
var QNumber : Int = 0
override func viewDidLoad() {
//hiding answer
textBoxForAnswer.hidden = true
//components for swiping left
let swipeLeft = UISwipeGestureRecognizer(target: self, action: "respondLeft:")
swipeLeft.direction = .Left
view.addGestureRecognizer(swipeLeft)
//components for swiping Right
let swipeRight = UISwipeGestureRecognizer(target: self, action: "respondRight:")
swipeRight.direction = .Right
view.addGestureRecognizer(swipeRight)
Questions = [
Question(Question: "what colour is the sky", Answers: "blue"),
Question(Question: "what colour is the grass", Answers: "green",
Question(Question: "what colour is the sea", Answers: "blue",
Question(Question: "what is 1 plus 1", Answers: "2"),
Question(Question: "what is 2 plus 2", Answers: "4"),
Question(Question: "what is 3 plus 3", Answers: "6"),
]
pickQuestion()
}
func pickQuestion() {
if Questions.count > 0 {
Num.text = String(QNumber + 1)
labelForQuestion.text = Questions[QNumber].Question
textBoxForAnswer.text = Questions[QNumber].Answers
}
}
//Action for left swipe
func respondLeft(gesture: UIGestureRecognizer) {
if QNumber == (Questions.count - 1) {
//if last question do nothing so it doesnt go out of bounds
} else {
QNumber++;
pickQuestion()
}
}
//Action for Right Swipe
func respondRight(gesture: UIGestureRecognizer) {
if QNumber == 0 {
//if last question do nothing so it doesnt go out of bounds
} else {
QNumber--;
pickQuestion()
}
}
@IBAction func showAnswer(sender: AnyObject) {
textBoxForAnswer.hidden = false
}
@IBAction func save(sender: AnyObject) {
****Have tried many things here with NSUserDefaults and appending to a dictionary so I could see the saved question in the other view controllers. this is where I need help****
}
@IBAction func sections(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
То есть код для вопросов и отображения вопросов пользователей. Теперь я хочу сохранить выбранный вопрос, когда нажата кнопка сохранения. Мне нужно это сохранить, поэтому я могу представить эти сохраненные вопросы в другом контроллере представления и разрешить пользователю просматривать свои сохраненные вопросы. Как мне это сделать?
Возможный дубликат лицензирование [Сохранение пользовательского SWIFT-класса с использованием NSCoding для UserDefaults] (http://stackoverflow.com/questions/26469457/saving-custom-swift-class-with-nscoding-to-userdefaults) – Emptyless
Примечание: напишите все переменные с помощью camelCased с первой буквой в нижнем регистре. Запись имен протоколов/классов CamelCased с прописной первой буквой – muescha
https://github.com/raywenderlich/swift-style-guide#naming – muescha