如何在PrepareForSegue中显示ActivityIndi​​cator?

时间:2015-05-28 08:24:45

标签: ios swift

在导航到下一个VC之前,我会对用户数据进行简单检查。

问题:没有ActivityIndi​​cator显示1到15秒的计数。

如何解决这类问题?非常感谢您的帮助。

//          VC(1)  -- >  VC(2) 

// use BtnGo in VC(1) Control-drag to VC(2) 
// Name the Segue : SegueToVC2


// when BtnGo is click, I will do simple validation.

//-- do validation

override fun shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?)-> bool
{
     activityIndicator.hidden = false  (A)

   if identifier == "SegueToVC2" {

    // check user input 

    if username.isEmpty {


        return false

    }else {

      return true
   }

 }

  return true

}

prepareForSegue

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {

 disptach_async(dispatch_get_main_queue() {

 self.activityIndicator.startAnimating()  (B)

  }


  if (segue.Identifier == "SegueToVC2) {

    // goto VC(2)    (c)

  }

  activityIndicator.stopAnimating() (D)

}

1 个答案:

答案 0 :(得分:0)

您应该使用hideWhenStopped上的属性UIActivityIndicatorView而不是隐藏的property:当您致电self.activityIndicator.startAnimating()时会显示该属性,并且当您致电self.activityIndicator.stopAnimating()时会显示该属性{1}}

另外,在您的计算/请求完成后,您应该在self.activityIndicator.startAnimating()内拨打shouldPerformSegueWithIdentifier并将其隐藏在prepareForSegue中。

如果问题仍然存在,请尝试使用performSelectorOnMainThread来显示您的UIActivityIndicatorView