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

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

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

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

Ответ 1

Вы можете использовать UIBarButtonSystemItem следующим образом:

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

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

введите описание изображения здесь

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

navigationItem.rightBarButtonItem = button

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

введите описание изображения здесь

Ответ 2

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

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

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

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

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

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

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

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

navigationItem.leftBarButtonItems = [customImageBarBtn1, customImageBarBtn2]
navigationItem.rightBarButtonItems = [systemBarBtn]
// OR you can use this if there only one item.
navigationItem.rightBarButtonItem = systemBarBtn

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

Ответ 3

В Свифте 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