How to use info button on a UIBarButtonItem
There is no direct way to create such a bar button using the UIBarButtonItem
APIs.
You can although use a custom view configured with a .InfoLight
UIButton
, as suggested here:
// Create the info button
let infoButton = UIButton(type: .infoLight)
// You will need to configure the target action for the button itself, not the bar button itemr
infoButton.addTarget(self, action: #selector(getInfoAction), for: .touchUpInside)
// Create a bar button item using the info button as its custom view
let infoBarButtonItem = UIBarButtonItem(customView: infoButton)
// Use it as required
navigationItem.rightBarButtonItem = infoBarButtonItem
Feel free to leave a comment if you need any more help.
Adapting mokagio's excellent answer to Obj-C:
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(getInfoAction:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem* infoBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
self.navigationItem.rightBarButtonItem = infoBarButtonItem;