0

JSQmessageViewController를 사용하고 프로그래밍 방식으로 탐색 막대에 "뒤로"단추 & 사용자 이미지를 추가하려고합니다. 다음 코드를 사용하고 있습니다. 실행 후 "뒤로"버튼이나 이미지가 없습니다. 첨부 된 시뮬레이터의 스크린 샷입니다. 나는이 코드를 정상적인 UIViewController로 테스트했고, 그들은 작동했다.JSQmessageView 컨트롤러 : Swift 내비게이션 막대 "뒤로"단추 및 이미지 추가

JSQmessageViewController와 함께 작동하지 않는 이유를 알 수 있습니까? 그리고 탐색 막대에 "뒤로"버튼 & 이미지를 추가하려면 어떻게해야합니까? 고마워요! 당신이 JSQMessagesViewController 당신의 인스턴스화를 제시 탐색 컨트롤러를 사용하는 경우

let navigationBar = UINavigationBar(frame: CGRectMake(0, 0, self.view.frame.size.width, 64)) 

    navigationBar.backgroundColor = UIColor.whiteColor() 
    navigationBar.delegate = self; 


    let navigationItem = UINavigationItem() 
    navigationItem.title = strValue 

    let leftButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.Plain, target: self, action: "back:") 
    self.navigationItem.leftBarButtonItem = leftButton 

    let imgButton = UIButton() 

    imgButton.setImage(image, forState: .Normal) 
    imgButton.addTarget(self, action: "EditProfile:", forControlEvents: UIControlEvents.TouchDown) 
    imgButton.frame = CGRectMake(self.view.frame.width - 60, 0, 41, self.view.frame.height) 

    var rightButton = UIBarButtonItem(customView: imgButton) 

    self.navigationItem.rightBarButtonItem = rightButton 


    navigationBar.items = [navigationItem] 

    self.view.addSubview(navigationBar) 

}

+0

첨부 된 스크린 샷을 볼 수 없습니다. –

답변

0

을 그럼 탐색 바는 실제로 이미이 있어야합니다. 당신은 그 단추를 제공 할 수 있고 그들은 올바른 위치에있을 것입니다. 또한 오래된 구문으로 일을하고있는 것 같습니다. 다음은 최신 구문입니다.

뒤로 버튼을 추가하는 기능을 만듭니다.

func addCancelButtonLeft() { 
    let button = UIBarButtonItem(barButtonSystemItem: .back, target: self, action: #selector(dismissView)) 
    navigationItem.leftBarButtonItem = button 
} 

버튼에 대한 동작을 만듭니다.

func dismissView() { 
    dismiss(animated: true, completion: nil) 
} 

그런 다음 이미지의 경우 실제로는 해당 제목보기에 단추를 넣으려고합니다. 어느 쪽이야.

func titleView() { 
    let imgButton = UIButton() 

    imgButton.setImage(image, forState: .Normal) 
    imgButton.addTarget(self, action: #selector(EditProfile), forControlEvents: .touchUpInside) 
    navigationItem.titleView = imgButton 
} 
func EditProfile() { 
    navigationController?.present(EditProfileViewController(), animated: true, completion: nil) 
} 

더 궁금한 점이 있으면 알려 주시면 제가 할 수있는 것을 보여 드리겠습니다. 행운을 빌어 요.

+0

자세한 코드와 도움을 제공해 주셔서 감사합니다. 그들을 시도하고 더 배울 것입니다. :) –