2016-11-25 3 views
-3

私はView ControllerをPopOverしようと疲れていて、どこからでも自分自身を試してみました。この問題は再び起こりました。私はアクションのいずれかで、このメソッドを呼び出しています"BOOL型の値を期待された引数UIiewに変換できません"

func showPopover(base: UIView) 
{ 
    let storyboard : UIStoryboard = UIStoryboard(name: "Messaging", bundle: nil) 
    if let viewController = storyboard.instantiateViewControllerWithIdentifier("PreferencesViewController") as?PreferencesViewController 
    { 
     let navController = UINavigationController(rootViewController: viewController) 
     navController.modalPresentationStyle = .Popover 

     if let pctrl = navController.popoverPresentationController 
     { 
      pctrl.delegate = self 

      pctrl.sourceView = base 
      pctrl.sourceRect = base.bounds 

      self.presentViewController(navController, animated: true, completion: nil) 
     } 
    } 
} 

次に行うことUIBarButtonsからクリック

func optionChoosed(hello:Bool) 
{ 
    if (hello) 
    { 
     self.showPopover(hello) 
    } 
} 

それは我々が.. がUIiew予想引数にBOOL型の値を変換することはできませんと言いますこれを修正するか、私は間違った方向に行きます。

+0

ここで変数 'hello'は' Bool'型です。メソッド 'showPopover'に' View'を渡す必要があります。 –

+0

'popOver'を表示するには、' UIPopoverPresentationControllerDelegate'メソッドを使う必要があります。 –

+0

あなたは自分のコードを編集して、何を言おうとしているのかをコメントで伝えることができます。 –

答えて

0
class SHNewStylesViewController: UIViewController, UIPopoverPresentationControllerDelegate { 

var popover: UIPopoverPresentationController? = nil 


//MARK: - View life cycle 

override func viewDidLoad() { 
    super.viewDidLoad() 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
} 


//MARK: - IBActions 

@IBAction func showPopover(sender: AnyObject) { 
    let genderViewController = storyboard!.instantiateViewControllerWithIdentifier("ViewControllerTwoIdentifier") as! ViewControllerTwo 
    genderViewController.modalPresentationStyle = UIModalPresentationStyle.Popover 
    genderViewController.preferredContentSize = CGSize(width: 200.0, height: 400.0) // To change the popover size 
    popover = genderViewController.popoverPresentationController! 
    popover!.barButtonItem = sender as? UIBarButtonItem 
    popover!.delegate = self 
    presentViewController(genderViewController, animated: true, completion:nil) 
} 



//MARK: - Popover Presentation Controller Delegate methods 

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle { 
    return UIModalPresentationStyle.None 
} 

} 

私のケースでは、showPopoverは、私のバーボタン項目のIBActionです。あなたは、あなたが望むところでshowPopoverメソッド内のそのコードを使うことができます。

ありがとう:)

関連する問題