Как Mukesh suggested вы можете реорганизовать свой код с помощью отдельного метода повторяющегося кода.
Просто подумал, что отправлю альтернативное решение. Вы можете вызвать метод button1
изнутри button2
:
@IBOutlet weak var textField1: UITextField!
@IBOutlet weak var textField2: UITextField!
var displayAge: String?
@IBAction func button1(sender: AnyObject) {
var textAgeArray = ["1", "2", "3"]
let randomTextAge = Int(arc4random_uniform(UInt32(textAgeArray.count)))
displayAge = textAgeArray[randomTextAge]
textField1.text = displayAge
}
@IBAction func button2(sender: AnyObject) {
button1(sender)
textField2.text = displayAge
}
Обратите внимание, что вы должны взять переменную displayAge
так, что метод button2
может получить к нему доступ. Это приведет к тому, что текст textField1
и textField2
. Я не уверен, что это желаемый результат, поскольку я не могу сказать с вашего поста. Если вы хотите, чтобы они были разными случайными полями, я бы предложил вам реорганизовать его для повторного использования метода.
Это также установит оба текстовых поля одновременно. Если вы не хотите, чтобы реорганизовать свой код, чтобы установить только одно поле, в то время, то вы могли бы начать пометку кнопки, чтобы увидеть, где вызов исходит от:
@IBOutlet var button1: UIButton!
@IBAction func button1(sender: AnyObject) {
var textAgeArray = ["1", "2", "3"]
let randomTextAge = Int(arc4random_uniform(UInt32(textAgeArray.count)))
displayAge = textAgeArray[randomTextAge]
// if sender is this button, then update text, otherwise don't do anything
if sender.tag == 1 {
textField1.text = displayAge
}
}
По тегам по умолчанию является 0, но вы можете изменить их, установить их так: (Вы можете поместить это в viewDidLoad
)
button1.tag = 1
мая, а также добавить решение рефакторинга для полноты:
@IBOutlet weak var textField1: UITextField!
@IBOutlet weak var textField2: UITextField!
@IBAction func button1(sender: AnyObject) {
let displayAge = randomTextAge()
textField1.text = displayAge
}
@IBAction func button2(sender: AnyObject) {
let displayAge = randomTextAge()
// Uncomment the line below if you want to update textField1 with the same value
// textField1.text = displayAge
textField2.text = displayAge
}
func randomTextAge() -> String {
var textAgeArray = ["1", "2", "3"]
let randomTextAge = Int(arc4random_uniform(UInt32(textAgeArray.count)))
let displayAge = textAgeArray[randomTextAge]
return displayAge
}
Вы можете перемещать любые общие операции в separa а затем вызывать функцию из обоих действий, где вы можете выполнять любые дополнительные действия, относящиеся к конкретным действиям. Я надеюсь, что это имеет смысл ... – Alladinian