Добавление представленного контроллера представления над всеми представлениями

Я добавляю воспроизводимый вид над вкладкой следующим образом:

    let transition = CATransition()
    transition.type = CATransitionType.push
    transition.subtype = CATransitionSubtype.fromLeft
    miniPlayerView.view.layer.add(transition, forKey: nil)
    appDelegate.window?.rootViewController?.addChild(miniPlayerView)
    appDelegate.window?.addSubview(miniPlayerView.view)
    miniPlayerView.didMove()

в miniPlayerView.didMove() я устанавливаю рамку вида

view.frame = CGRect(x: 0, y: heightAvailable - height, width: frameWidth, height: height)

Теперь, когда я нажимаю на NowPlaying, я показываю его на весь экран. У меня есть кнопка внутри него, которая показывает всплывающее окно нижнего листа, которое появляется за MiniPlayerView View

Я попробовал несколько кодов, чтобы добавить всплывающий нижний лист выше всех представлений, но он не работает.

Пример кода:

    let modal = ModalViewController()
    let transitionDelegate = DeckTransitioningDelegate()
    modal.transitioningDelegate = transitionDelegate
    modal.modalPresentationStyle = .custom
    present(modal, animated: true, completion: nil)

Кроме того, я пытался использовать эту библиотеку: https://github.com/ergunemr/BottomPopup

Но проблема кажется с этими двумя строками:

appDelegate.window?.rootViewController?.addChild(miniPlayerView)
appDelegate.window?.addSubview(miniPlayerView.view)

Как показать представленный вид Bottomsheet внутри miniPlayerView v


person JhonnyTawk    schedule 02.08.2019    source источник
comment
используйте метод BringSubViewToFront.   -  person Abu Ul Hassan    schedule 02.08.2019
comment
@AbuUlHassan, это не работает   -  person JhonnyTawk    schedule 02.08.2019
comment
и почему так? appDelegate.window?.bringSubview(toFront: popUpWindow)   -  person Abu Ul Hassan    schedule 02.08.2019


Ответы (1)


Попробуйте мой код здесь, я представляю предупреждение поверх всех представлений. Если это действительно полезно, используйте его.

DispatchQueue.main.async(execute: {
        let window = UIWindow(frame: UIScreen.main.bounds)
        window.rootViewController = UIViewController()
        window.windowLevel = UIWindow.Level.alert+1

        let alert2 = UIAlertController(title: title, message: message, preferredStyle: .alert)
        let defaultAction2 = UIAlertAction(title: "OK", style: .default, handler: { action in
        })
        alert2.addAction(defaultAction2)

        window.makeKeyAndVisible()

        window.rootViewController?.present(alert2, animated: true, completion: nil)
    })
person iOS    schedule 02.08.2019
comment
Я не хочу показывать предупреждение, я хочу пользовательский нижний лист - person JhonnyTawk; 02.08.2019
comment
Да, попробуйте заменить своими именами представлений - person iOS; 02.08.2019