Тип кнопки 101 не определен в SDK и может перестать работать при любом обновлении ОС.
Я бы использовал buttonWithType:UIButtonTypeCustom
, а затем добавил изображение, которое придало бы вам нужный вид, вызвав setImage: forState для объекта пользовательской кнопки.
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[backButton setImage:[UIImage imageNamed:@"backBarButtonNormal.png"] forState:UIControlStateNormal];
[backButton setImage:[UIImage imageNamed:@"backBarButtonHighlighted.png"] forState:UIControlStateHighlighted];
// Rest of the code is the same.
Реальный вопрос заключается в том, почему вам нужно воссоздать стандартную кнопку, которую контроллер навигации автоматически дает вам в первую очередь. Убедитесь, что вы работаете с инструментами, а не против них.
Если вам необходимо отслеживать, когда контроллер представления включается и выключается, вы можете установить свой контроллер представления в качестве делегата контроллера навигации, например так:
- (void)viewDidLoad {
[super viewDidLoad];
[[self navigationController] setDelegate:self];
}
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if (viewController != self)
NSLog(@"We're going away...");
}
- (void)viewDidUnload {
[super viewDidUnload];
[[self navigationController] setDelegate:nil];
}