Подтвердить что ты не робот

Как я могу идентифицировать событие с нажатием кнопки self.editButtonItem?

Я установил левую кнопку бара UINavigationController в качестве кнопки редактирования с помощью кода

leftBarButton = self.editButtonItem;

Я хочу изменить некоторые свойства disable/enable других кнопок в отношении действия нажатия кнопки редактирования.

Как я могу найти, нажата ли кнопка "Редактировать" или нет?

4b9b3361

Ответ 1

Действие кнопки редактирования отправляет вашему контроллеру вида сообщение setEditing:animated. Переопределите это в своем подклассе для выполнения других действий при входе или выходе из режима редактирования.

Обязательно вызовите реализацию super в конце, чтобы управлять остальной частью перехода к редактированию.

Ответ 2

Итак, наконец, я получил решение...

-(void)setEditing:(BOOL)editing animated:(BOOL)animated {

    [super setEditing:editing animated:animated];

    if(editing) {
        //Do something for edit mode
    }

    else {
        //Do something for non-edit mode
    }

}

Этот метод вызывается с изменением исходного поведения кнопки self.editButtonItem.

Ответ 3

В Swift:

@IBOutlet weak var tableView: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()

   ....
    self.navigationItem.leftBarButtonItem = self.editButtonItem()
}

override func setEditing(editing: Bool, animated: Bool) {
    // Toggles the edit button state
    super.setEditing(editing, animated: animated)
    // Toggles the actual editing actions appearing on a table view
    tableView.setEditing(editing, animated: true)
}

Ответ 4

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

  @IBOutlet weak var tableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()
        navigationItem.rightBarButtonItem = editButtonItem()
    }

   override func setEditing(editing: Bool, animated: Bool){

        super.setEditing(editing, animated: animated)
        tableView.setEditing(editing, animated: true)


    }

Ответ 5

UIBarButtonItem *barBut=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(doSomething)];


self.navigationItem.leftBarButtonItem=barBut;

[barBut release];


.h
-(void)doSomething;

.m 

-(void)doSomething{

    NSLog(@"dooooooooooooo");
        //ur stuff
}

обновление:

 - (void)setEditing:(BOOL)editing animated:(BOOL)animated 

будем называть

editButtonItem

Returns a bar button item that toggles its title and associated state between Edit and Done.

- (UIBarButtonItem *)editButtonItem

Discussion
If one of the custom views of the navigationItem property is set to the returned object, the associated navigation bar displays an Edit button if editing is NO and a Done button if editing is YES. The default button action invokes the setEditing:animated: method.

    Availability
    Available in iOS 2.0 and later.

    See Also
    @property editing

    – setEditing:animated:


    Declared In
    UIViewController.h

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIViewController_Class/Reference/Reference.html