2017-01-27 3 views
2

Я столкнулся с очень странной проблемой. Когда отображается UIAlertController, то в фоновом слое текущего контроллера вида отображается вид сверху UIAlertController. Я не могу опубликовать снимок экрана этого экрана.Viewcontroller показывает другой контроллер представления в качестве фонового слоя при отображении UIAlertViewController?

Ниже код, показывающий UIAlertController

func showActionAlertView(alertData:[String],vc:UIViewController,singleType:Bool) -> Void { 

    let Alert = UIAlertController(title: alertData.first, message: NSLocalizedString(alertData[1], comment: ""), preferredStyle: UIAlertControllerStyle.alert) 

    Alert.addAction(UIAlertAction(title: alertData[2], style: .default, handler: { (action: UIAlertAction!) in 
     self.delegate?.okAction(controller: vc) 


    })) 

    if !singleType 
    { 
     Alert.addAction(UIAlertAction(title: alertData.last, style: .cancel, handler: { (action: UIAlertAction!) in 
     print("Handle Cancel Logic here") 
     self.delegate?.cancelAction(controller: vc) 
     })) 

    } 

    vc.present(Alert, animated: true, completion: nil) 


    } 

Благодарности

+0

Pls написать переменное/свойство всегда с небольшой строчной буквой - это перемешивается очень быстро с классом (который всегда должно быть заглавной первой буква) – muescha

+0

Что такое 'vc' в этом случае? Это другой 'UIViewController', чем текущий отображаемый? (Или, другими словами: 'showActionAlertView' вызывается из другого контроллера представлений, чем' vc'?) –

+0

Я создал это как функцию comman. Так из которого когда-либо был viewcontroller, эта функция называется i pass vc как объект этого контроллер. – iOSGuy

ответ

0

Вы должны войти в вышеуказанную функцию внутри того же контроллера представления, где значение ВХ также должна быть такой же.

class OneVC: UIViewController{ 

    //Inside viewDidLoad 
    // value for vc should be given same as of present class name (OneVC) 
    showActionAlertView(alertData:[String], vc:OneVC, singleType:Bool) -> Void 

} 
+0

Я не могу этого сделать, потому что я создал showActionAlertView как функцию comman, так что мне не нужно писать один и тот же код для контроллера предупреждений – iOSGuy