У меня есть несколько проблем с контроллерами предупреждений в быстром режиме. У меня есть две функции для отображения индикаторов активности. 1 с анимацией и без нее. Причина создания второго без анимации состояла в том, что .. Я показываю активность на контроллере представления, когда пользователь нажимает на ячейку представления таблицы и переходит к новому контроллеру. Этот контроллер вызывает веб-сервис и заполняет второй вид таблицы.alertControllers in swift
Моя проблема заключалась в том, что веб-служба возвращала ответ так быстро, что индикатор активности не был на экране, когда я пытался его отклонить, то есть в ответе вызова webservice. Я представлял этот индикатор в viewdidload, а затем вызывал функцию веб-службы в представлении, после чего загружался.
Единственный способ, которым я мог обойти это, - создать предупреждение о действии, в котором не было анимации, поскольку казалось, что анимация немного замедляет ее. Но когда я установил свойство анимации в значение false, контроллер предупреждения не имел backgroundColor. Когда я пытаюсь добавить фоновый цвет к контроллеру предупреждения, ширина изменяется на полный экран.
Так я ищу:
A) пути вокруг увольнения очередного контроллера оповещения, когда веб-служба возвращает слишком быстро
или
B), чтобы уменьшить размер второго контроллера предупреждения, который не имеет анимации.
Заранее спасибо. У меня возникли проблемы с увольнением этих контроллеров предупреждений, когда я пытался их отклонить, мой фактический контроллер просмотров был уволен, поэтому я попытался проверить класс представленного контроллера и только отклонить, если класс был alertController, но я не Не думаю, что это действительно правильный способ обойти это.
код ниже:
func displayActivityAlert(title: String, #ViewController: UIViewController)
{
let pending = UIAlertController(title: "\n\n\n"+title, message: nil, preferredStyle: .Alert)
//create an activity indicator
let indicator = UIActivityIndicatorView(frame: pending.view.bounds)
indicator.autoresizingMask = .FlexibleWidth | .FlexibleHeight
indicator.color = UIColor(rgba: Palette.accent)
//add the activity indicator as a subview of the alert controller's view
pending.view.addSubview(indicator)
//pending.view.backgroundColor = UIColor.whiteColor()
indicator.userInteractionEnabled = false // required otherwise if there buttons in the UIAlertController you will not be able to press them
indicator.startAnimating()
ViewController.presentViewController(pending, animated: true, completion: nil)
}
и
func displayActivityAlertNoAnim(title: String, #ViewController: UIViewController)
{
let pending = UIAlertController(title: "\n\n\n"+title, message: nil, preferredStyle: .Alert)
//create an activity indicator
let indicator = UIActivityIndicatorView(frame: pending.view.bounds)
indicator.autoresizingMask = .FlexibleWidth | .FlexibleHeight
indicator.color = UIColor(rgba: Palette.accent)
//add the activity indicator as a subview of the alert controller's view
pending.view.addSubview(indicator)
pending.view.backgroundColor = UIColor.whiteColor()
// this line cause the alert controller to become full width of the screen
indicator.userInteractionEnabled = false // required otherwise if there buttons in the UIAlertController you will not be able to press them
indicator.startAnimating()
ViewController.presentViewController(pending, animated: **false**, completion: nil)
}
код для проверки класса и увольнения:
if self.presentedViewController!.isKindOfClass(UIAlertController){
self.dismissViewControllerAnimated(true, completion: nil)
}
благодарит за отзыв. Мои функции для отображения предупреждений о действиях находятся в отдельном файле, поэтому я не могу начать загрузку с веб-службы в этой функции. Также я не хочу выполнять сеансы, когда мой показатель активности отклоняется? – user2363025
Я обновил свой ответ сейчас, чтобы соответствовать вашей архитектуре :) – Kumuluzz
У меня есть еще один быстрый ответ, который я застрял, когда у вас нет свободного времени: http://stackoverflow.com/questions/33480323/ОБНОВЛЕНИЕ-строки метка на основе-на-веба-сервис от реализации быстра – user2363025