Возможно ли иметь функцию @IB Action внутри viewDidLoad()?@IB Функция действия внутри viewdidload в Swift
Действие является простым: Stepper, который увеличивает другие значения label.text соответственно. Однако значения, с которыми должен работать шагомер, зависят от возвращаемого содержимого URL-адреса, которые известны только после viewDidLoad(), конечно.
Так что я думаю, что я не могу иметь IBAction путь сверху до viewDidLoad(), и ошибка я получаю, если я пытаюсь сделать мое IB действие внутри viewDidLoad() является:
«только методы экземпляра могут быть объявлены" IBAction»
РЕДАКТИРОВАНИЕ
Позвольте мне прояснить себя, извините за сумбур, я знаю, что нужен выход, чтобы получить значения UIStepper от меня этого..:
@IBOutlet weak var stepper: UIStepper!
Я тогда действие также подключен к той же UIStepper, что будет увеличивать/уменьшать значение текст метки (new_total) соответственно:
@IBOutlet weak var new_total: UILabel!
@IBAction func step_up_pass(sender: AnyObject) {
new_total.text = "\(Int(stepper.value))"
}
Однако, я хочу начать со значением (todays_price) Я возвращаюсь из запроса json и использую это как отправную точку, чтобы умножить его с помощью шага и поместить умноженное значение в текст метки.
У меня есть структуры в отдельном файле, который определяет мой объект так:
struct PassengerFromOtherBus {
var fname: String?
var lname: String?
var todays_price: Int?
init(json: NSDictionary) {
self.fname = json["fname"] as? String
self.lname = json["lname"] as? String
self.todays_price = json["todays_price"] as? Int
}
}
Так позже в контроллере представления, внутри viewDidLoad(), после подключения к URL и затем разбирать его, используя NSJSONSerialization и кучу другого кода здесь (с которым мне не нужно путать вас). Наконец, у меня есть значение todays_price. Итак, мой вопрос: как мне заставить мое действие использовать это значение, когда оно известно только внутри моего viewDidLoad()? Xcode даже не позволит мне подключить IBAction в любом месте функции viewDidLoad!
разместить свой код. Непонятно, какова ваша проблема –
Действительно ли ваш вопрос: я собираю данные асинхронно, и для завершения требуется время. Когда он завершит мой просмотр, он уже загружен. Как получить мои данные вовремя, поэтому мне не придется обновлять свой интерфейс, если он уже виден? –
Ну, я думаю, вы можете так выразиться, да –