2017-12-23 48 views
0

내 앱에서 콘텐츠를 만드는 데 모달 뷰를 제공하고 싶습니다. iOS Mail 앱과 같은 스타일을 원합니다. 새 이메일을 작성할 때 화면 상단을 제외한 대부분의 화면을 포함합니다. 여러 모달 섹스 스타일을 시도하고 모두 전체 화면을 차지합니다. enter image description here모달 뷰가 전체 화면을 소형으로 채울 수 있습니까?

그리고 나는 이런 식으로 뭔가 싶습니다 :이 얻을 나는 모든 프리젠 테이션 스타일을 시도했습니다 enter image description here

합니다. 지금까지 공유 할 코드가 없습니다. 스토리 보드에 불과합니다.

답변

0
class ControllerForPresent: UIViewController { 

var parentController: UIViewController! 

func present(from parent: UIViewController) { 
    parentController = parent 
    parentController.view.superview!.backgroundColor = .black 
    UIApplication.shared.keyWindow!.rootViewController!.addChildController(self) 
    view.frame.origin.y = UIScreen.main.bounds.height 
    view.frame.size.height = UIScreen.main.bounds.height - 40 
    UIView.animate(0.45, damping: 1, velocity: 1, options: .allowUserInteraction) { 
     self.parentController.view.transform = CGAffineTransform(scaleX: 0.95, y: 0.95) 
     self.view.frame.origin.y = 40 
    } 
} 

@objc private func close() { 
    UIView.animate(0.3, animation: { 
     self.parentController.view.transform = .identity 
     self.view.frame.origin.y = UIScreen.main.bounds.height 
    }, completion: { 
     self.parentController.view.superview!.backgroundColor = .white 
     self.removeFromParent() 
    }) 
} 
} 

class ControllerThatPresents: UIViewController { 

    private func showAnotherController() { 
     let vc = storyboard!.instantiateViewController(withIdentifier: "ControllerForPresentId") as! ControllerForPresent 
     vc.present(from: self) 
    } 
} 

표시하려는 컨트롤러에 식별자 "ControllerForPresentId"를 추가하십시오.