2017-05-04 11 views
0

ナビゲーションコントローラがあり、ナビゲーションバーの右側にボタンを配置しようとしていますが、タップアクションを処理できません。私はUIBarButtonItemが動作しません。3.0

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationItem.rightBarButtonItem = navigationButton 
} 

funcをのviewDidLoad上のボタンを追加していると私はタップイベントを処理するために使用しようとしている機能は、この

あるこの

let navigationButton = UIBarButtonItem.init(title: "Logout", style: .done, target: self, action: #selector(RestaurantsListViewController.logoutAction)) 

のようなUIBarButtonItemを宣言しています

func logoutAction(sender: AnyObject?){ 
    print("Logout") 
} 

ボタンを押すと、メッセージはコンソールに表示されません。

+0

せnavigationButton = UIBarButtonItem.init(タイトルのようにFUNCを交換する必要がある。この をそれ以外の場合は試してみてください、target:self、action:#selector(RestaurantsListViewController.logoutAction))はロードされたビューにありますか? –

+0

あなたはどのコントローラにlogoutAction関数を書いていますか? –

+0

@AnilKumar私はすべてのメソッドのうち、メインクラスの初期化子を持っています –

答えて

3

これを試してみてください: "ログアウト"、スタイル::の.done

override func viewDidLoad() { 
    super.viewDidLoad() 

self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "ButtonName", style: .done, target: self, action: #selector(YourViewController.yourAction)) 

} 
+0

UBarButtonItemをviewDidLoad内で初期化してください。問題を修正してください。 –

0
let okbtn = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(ViewController.logoutAction)) 

あなたは

func logoutAction() 
{ 
    print("logout") 
} 
関連する問題