Я считаю, что UIGestureRecognizer могут быть добавлены только в UIViews и подклассы UIViews.
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html
Кнопка "Назад" - это UIBarButtonItem, который происходит от NSObject. Следовательно, вы не сможете прикрепить распознаватель жестов к стандартной кнопке возврата, используя
UILongPressGestureRecognizer *longPressGesture =
[[[UILongPressGestureRecognizer alloc]
initWithTarget:self action:@selector(longPress:)] autorelease];
[self.navigationItem.backBarButtonItem addGestureRecognizer:longPressGesture];
Однако вы можете добавить пользовательский вид в UIBarButtonItem. Настраиваемое представление также может быть UIView, UIButton, UILabel и т. Д.
Пример:
UIView *myTransparentGestureView = [[UIView alloc] initWithFrame:CGRectMake(0,0,40,30)];
[myTransparentGestureView addGestureRecognizer:longPressGesture];
[self.navigationItem.backBarButtonItem setCustomView:myTransparentGestureView];
// Or you could set it like this
// self.navigationItem.backBarButtonItem.customView = myTransparentGestureView;
[myTransparentGestureView release];
Однако вы должны быть осторожны, поскольку установка свойств в backBarButtonItem применяется к следующему представлению, которое вы нажимаете. Поэтому, если у вас есть вид A, который выдвигает вид B, и вы хотите, чтобы жест был распознан при повторном нажатии в представлении B. Вы должны настроить его в представлении A.