Как добавить / использовать значки по умолчанию на панели навигации

Я хочу использовать некоторые стандартные иконки iOS, т.е.
введите описание изображения здесь

в панели навигации.
По сути, я не знаю, как вызвать изображение этого элемента (напрямую из нативной библиотеки - я знаю, как его загрузить и разместить как собственное изображение:)):

   var myButton:UIButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
   myButton.addTarget(self, action: "reload", forControlEvents: UIControlEvents.TouchUpInside)
   myButton.setImage(???, forState: <#UIControlState#>)

2 ответа

Решение

Ты можешь использовать UIBarButtonSystemItem сюда:

let button = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Refresh, target: self, action: "someAction")
navigationItem.leftBarButtonItem = button

Результат для leftBarButtonItem:

Если вы хотите установить его справа, вы можете использовать этот код:

navigationItem.rightBarButtonItem = button

Результат для rightBarButtonItem:

Swift 3: это наиболее часто используемые опции:

Чтобы использовать пользовательское изображение с оригинальным цветом:

let customImageBarButton1 = UIBarButtonItem(UIImage(named: "someImage.png").withRenderingMode(.alwaysOriginal), style: .plain, target: self, action: #selector(handleClick))

Чтобы использовать пользовательское изображение с оттенком цвета:

let customImageBarButton2 = UIBarButtonItem(UIImage(named: "someImage.png").withRenderingMode(.alwaysTemplate), style: .plain, target: self, action: #selector(handleClick))

Или используйте кнопки системы:

 let systemBarButton = UIBarButtonItem(barButtonSystemItem: .search, target: self, action: #selector(handleClick))

Затем добавьте любую из этих кнопок в навигационный элемент:

navigationItem.leftBarButtonItems = [customImageBarButton1, customImageBarButton2]
navigationItem.rightBarButtonItem = [systemBarButton]
// OR you can use `navigationItem.rightBarButtonItems = systemBarButton` for one item

Для пользовательских изображений: в качестве начального размера 22ptx22pt изображения хорошо подходят для стандартного размера панели навигации iPhone.

В быстрой 4.3

let btnRefresh = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.refresh, target: self, action: #selector(targeted function to invoke))

   //If you want icon in left side
    navigationItem.leftBarButtonItem = btnRefresh

   //If you want icon in right side
    navigationItem.rightBarButtonItem = btnRefresh
Другие вопросы по тегам