it-roy-ru.com

Как добавить правую кнопку в панели навигации?

У меня есть вопрос, чтобы добавить правую кнопку в панели навигации ..

У меня есть два вида: вид А и вид Б

Я добавляю панель навигации для просмотра A, после того как я использовала self.navigationController!.pushViewController для отображения представления B.

То, что кнопка возврата слева от навигационной панели вида B автоматическая, это хорошо. но теперь я хочу добавить кнопку в правой части навигационной панели B .. Я попробовал некоторые ответы, но это не сработало ... Я попробовал ответы вроде: 1 ) https://www.hackingwithswift.com/example-code/uikit/how-to-add-a-bar-button-to-a-navigation-bar 2) http://blog.apoorvmote.com/add-multiple-bar-button-item-navigation-bar/?lang=fr

Не могли бы вы помочь мне, спасибо!

8
user2262304

Свифтская версия ответа Ваана Бабаяна, как вы, кажется, используете этот язык:

let rightButtonItem = UIBarButtonItem.init(
      title: "Title", 
      style: .Done, 
      target: self, 
      action: "rightButtonAction:"
)

self.navigationItem.rightBarButtonItem = rightButtonItem

Следующий метод будет вызван на себя:

func rightButtonAction(sender: UIBarButtonItem)

Обратите внимание, что все это может быть установлено графически с помощью раскадровки , перетаскивая элемент панели кнопок к элементу навигации и щелкая правой кнопкой мыши, чтобы установить целевое действие.


Небольшое обновление после выхода Swift 3 и 4: теперь компилятор может проверять имена селекторов, предотвращая опечатки при программной настройке target-action. Так что нужно действительно использовать:

let rightButtonItem = UIBarButtonItem.init(
      title: "Title", 
      style: .Done, 
      target: self, 
      action: #selector(rightButtonAction(sender:))
)
27
Jean-Baptiste

Вы можете добавить следующий код в метод viewDidLoad вашего контроллера B.

UIBarButtonItem *rightButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Title" 
                                                                    style:UIBarButtonItemStyleDone 
                                                                    target:self 
                                                                    action:@selector(rightButtonAction:)];
self.navigationItem.rightBarButtonItem = rightButtonItem;
4
Vahan Babayan
- (void)viewDidLoad {

    [super viewDidLoad];
    UIBarButtonItem *rightBtn = [[UIBarButtonItem alloc]initWithTitle:@"Right Button" style:UIBarButtonItemStyleDone target:self action:@selector(rightBtnClick)];
    self.navigationItem.rightBarButtonItem = rightBtn;
}

-(void)rightBtnClick{
    // code for right Button

}
2
Vasanthan Prem

Swift код для добавления элемента кнопки панели навигации:

Метод 1 (Когда вы хотите использовать системный элемент кнопки панели)

navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))

Метод 2 (Когда вы хотите дать собственное название для кнопки)

navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))

Начиная с iOS 5, он позволяет добавлять более 1 кнопки по обе стороны от панели навигации. Что-то вроде этого:

let add = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
let display = UIBarButtonItem(title: "Display", style: .plain, target: self, action: #selector(playTapped))

navigationItem.rightBarButtonItems = [add, display]
0
iPhoneDeveloper

Добавьте код ниже в методе viewDidLoad

UIBarButtonItem *flipButton = [[UIBarButtonItem alloc] 
                               initWithTitle:@"Flip"                                            
                               style:UIBarButtonItemStyleBordered 
                               target:self 
                               action:@selector(flipView:)];
self.navigationItem.rightBarButtonItem = flipButton;

Это добавляет кнопку справа с заголовком Flip, которая вызывает метод:

-(IBAction)flipView
0
Paras vora