2015-01-23 5 views
0

내 앱에서 splitViewcontroller를 사용합니다. 내 DetailViewController의 navigationBar를 제거했습니다.내 UIButton에 displayModeButtonItem 사용 SWIFT

navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem() 
navigationItem.leftItemsSupplementBackButton = true 

을하지만 잘 된 leftBarButtonItem 같은 팝 오버에 내 MasterViewController을 표시하기 위해 내 자신의 버튼을 필요 그래서 사용할 수 없습니다.

@IBAction func showAll() { 
    rootViewController.splitViewController?.displayModeButtonItem().action 
} 

을하지만 그것은 작동하지 않습니다

나는 시도했다.

편집 :

내가 내 masterViewController 내부에, 내 자신의 팝 오버를 추가했습니다.

@IBAction func showAll(sender : UIButton!) { 

    let popover = UIPopoverController(contentViewController:masterViewController) 
    popover.presentPopoverFromRect(sender.frame, inView: self.view, permittedArrowDirections:UIPopoverArrowDirection(), animated: true) 
} 

그러나 응용 프로그램 충돌 :

Application tried to present modally an active controller <DetailViewController: 0x7f8393d96540> 

내가 detailViewController의보기에서 팝 오버를 표시해야하기 때문에 내가 이해가 안 돼요. 어떻게해야합니까?

+0

이 어둠 속에서 샷 : 당신의'showAll' 기능에'self.splitViewController .preferredDisplayMode = .PrimaryOverlay'를 사용해보십시오. – pbasdf

답변

0

이 @pbasdf 솔루션과 함께 완벽하게 작동합니다 :

@IBAction func showAll() { 
    self.splitViewController?.preferredDisplayMode = .PrimaryOverlay 
    self.splitViewController?.displayModeButtonItem().action 
}