Я много читал о Staked Overflow и смотрел видеоролики youtube о генерации кнопок с кодом, но я не могу понять, как иметь оператор if, основанный на кнопке. Это вложен внутри другого оператора, потому что, когда на один вопрос отвечают кнопки oringal yes или no, у меня возникает другой вопрос.Если инструкции для генерируемых кодом кнопок, Swift
у меня есть:
var btn = UIButton(frame: CGRectMake(50, 50, 150, 20));
btn.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal);
btn.setTitle("My Button Text!!", forState:UIControlState.Normal);
btn.addTarget(self, action: "buttonTapped:", forControlEvents: UIControlEvents.TouchUpInside);
self.view.addSubview(btn);
func buttonTapped(sender: UIButton!) {
println("Button Tapped!!!")
}
Но вместо того, чтобы печатать "Кнопка резьбовыми !!!" Я получаю ошибку «SIGABART». Как я могу использовать оператор if вместо функции one? Есть ли лучший способ решить эту функцию?
Полный код:
//
// ViewController.swift
// Living Vermont
//
// Created by Matthew Furtsch on 6/8/15.
// Copyright (c) 2015 Matthew Furtsch. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
var label1: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
label1 = UILabel()
label1.text = "Is it a plant?"
label1.font = UIFont.systemFontOfSize(36)
label1.sizeToFit()
//Label location quardnets
label1.center = CGPoint(x: 100, y: 0)
view.addSubview(label1)
UIView.animateWithDuration(1.5, delay: 0.0, usingSpringWithDamping: 0.2, initialSpringVelocity: 0.0, options: nil, animations: {
self.label1.center = CGPoint(x: 100, y: 0 + 40)
}, completion: nil)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func journal(sender: AnyObject)
{
}
@IBAction func noButton(sender: AnyObject)
{
label1.text = "no"
var btn = UIButton(frame: CGRectMake(50, 50, 150, 20));
btn.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal);
btn.setTitle("My Button Text!!", forState:UIControlState.Normal);
btn.addTarget(self, action: "buttonTapped:", forControlEvents: UIControlEvents.TouchUpInside);
self.view.addSubview(btn);
func buttonTapped(sender: UIButton!) {
println("Button Tapped!!!")
}
}
@IBAction func yesButton(sender: AnyObject)
{
label1.text = "yes"
}
}
Если вы получаете SIGABRT, какое сообщение об ошибке связано с объяснением причины прерывания? Предоставьте сообщение и трассировку стека. – kbgn
Код, который вы предоставили, полностью подходит для меня. Возможно, это ошибка в Xcode ... попробуйте перезапустить ее. – LinusGeffarth