警告错误并动态显示隐藏的 UILabel
Posted
技术标签:
【中文标题】警告错误并动态显示隐藏的 UILabel【英文标题】:Alert Error and Dynamically show hidden UILabel 【发布时间】:2015-03-01 13:02:23 【问题描述】:我有两个不同的问题,
-
我有一个隐藏在 viewDidLoad() 中的标签,后来我尝试将隐藏值设置为 false,但它不起作用。
尝试显示警报但收到此错误“由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因:'应用程序试图以模态方式呈现活动控制器”
下面是我的代码
class HomeViewController: UIViewController ,UITextFieldDelegate
@IBOutlet weak var userName: UITextField!
@IBOutlet weak var passWord: UITextField!
@IBOutlet weak var errorMessage: UILabel!
override func viewDidLoad()
super.viewDidLoad()
self.errorMessage.hidden = true
// Do any additional setup after loading the view, typically from a nib.
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
@IBAction func login(sender: AnyObject)
let alertController = UIAlertController(title: "Error", message:
"Wrong username or password", preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default,handler: nil))
let url = NSURL(string: "myurl")
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) (data, response, error) in
println(NSString(data: data, encoding: NSUTF8StringEncoding))
var error: NSError?
let jsonData: NSData = data /* get your json data */
let json = NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: &error) as NSDictionary
if let login: AnyObject = json["login"]
if (login as NSObject == 0)
self.errorMessage.hidden = false
self.presentViewController(alertController, animated: true, completion: nil)
task.resume()
【问题讨论】:
【参考方案1】:好的,最后我使用 dispatch_async(dispatch_get_main_queue()) 解决了这个问题,所以 if 语句将是这样的
if let login: AnyObject = json["login"]
if (login as NSObject == 0)
dispatch_async(dispatch_get_main_queue())
self.errorMessage.hidden = false
self.presentViewController(alertController, animated: true, completion: nil)
【讨论】:
我自己也遇到了同样的问题!从任务调用 GUI 代码需要 dispatch_async(dispatch_get_main_queue()),非常感谢!以上是关于警告错误并动态显示隐藏的 UILabel的主要内容,如果未能解决你的问题,请参考以下文章
js设置DIV显示时间并动态显示时间倒计时多少秒,倒计时完了之后该层自动隐藏。
为每个具有类名的 div 动态创建按钮,并创建显示/隐藏单击功能