выполнитьSegue с программно добавленной кнопкой навигации

Я пытаюсь программно настроить элемент кнопки панели навигации... У меня просто есть некоторые проблемы, которые, я уверен, легко исправить. Я хочу сделать ее кнопкой «Добавить» по умолчанию на данный момент, но также в будущем хочу сделать элемент кнопки панели настраиваемым значком, который я создаю. поэтому я думаю, что хотел бы знать оба способа, как программно изменить кнопку панели навигации на стили по умолчанию и пользовательские значки... спасибо!

override func viewDidAppear(animated: Bool) {

    let rightbutton = UIBarButtonItem(title: "+", style: UIBarButtonItemStyle.Plain, target: self, action: "uploadButtonClicked")

    navigationItem.rightBarButtonItem = rightbutton


}

person user3708224    schedule 26.07.2015    source источник
comment
сделайте это в методе viewDidLoad, а также не забудьте вызвать super.viewDidAppear(animated)   -  person ozgur    schedule 26.07.2015


Ответы (1)


Вот как вы могли бы сделать это с кнопкой добавления по умолчанию:

    let button = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Add, target: self, action: "uploadButtonClicked")
    self.navigationItem.rightBarButtonItem = button

Вот как можно программно добавить пользовательское изображение:

    let customImage = UIImage(named: "customButtonImage")
    let customButton = UIBarButtonItem(image: customImage, style: UIBarButtonItemStyle.Plain, target: self, action: "uploadButtonClicked:")
    self.navigationItem.rightBarButtonItem = customButton

Чтобы выполнить переход, вы можете сделать это:

@IBAction func uploadButtonClicked(sender: UIBarButtonItem) {
    performSegueWithIdentifier("segueIdentifier", sender: self)
}

Или, если вы хотите оттуда перейти на другую раскадровку, то ваш IBAction будет выглядеть так:

@IBAction func uploadButtonClicked(sender: UIBarButtonItem) {
    let storyboard = UIStoryboard(name: "YourStoryboard", bundle: nil)
    let nc = storyboard.instantiateInitialViewController() as! UINavigationController
    let vc = nc.viewControllers.first as! YourViewController
person Jeff Lewis    schedule 26.07.2015