0

Я пытаюсь добавить кнопку информации в верхнюю часть панели навигации. Кнопка информации направляет пользователя к информационному представлению. Следующий код добавляет информацию о iPhone по умолчанию в навигационную панель. Он помещается внутри функции RootViewController.m viewDidLoad.Как добавить значок информации в панель навигации и реализовать метод showInfoView?

UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 
    [infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside]; 
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton]; 

Теперь метод showInfoView должен быть реализован, и используется следующий код:

- (IBAction)showInfoView:(id)sender { 

// Create the root view controller for the navigation controller 
// The new view controller configures a Cancel and Done button for the 
// navigation bar. 
InfoViewController *addController = [[InfoViewController alloc] 
              initWithNibName:@"InfoView" bundle:nil]; 

// Configure the RecipeAddViewController. In this case, it reports any 
// changes to a custom delegate object. 
addController.delegate = self; 

// Create the navigation controller and present it modally. 

UINavigationController *navigationController = [[UINavigationController alloc] 
               initWithRootViewController:addController]; 
[self presentModalViewController:navigationController animated:YES]; 

// The navigation controller is now owned by the current view controller 
// and the root view controller is owned by the navigation controller, 
// so both objects should be released to prevent over-retention. 
[navigationController release]; 

[addController release];  

}

Но когда программа строит и работает, нажав на результаты Информация кнопку в программа сбой.

Неужели кто-нибудь сталкивался с этой проблемой раньше? Я искал экстенсивно, и я не видел какого-либо органа с проблемой реализации метода showInfoView.

ответ

-1

Используйте этот код:

UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 
[infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside]; 
self.navigationItem.rightBarButtonItem = infoButton; 

Метод showInfoView: должен работать нормально при условии, что имя файла СИБ «InfoView.xib» не «InfoViewController.xib»

+0

Выдает следующую ошибку: *** нагрузочного приложение из-за неперехваченного исключения «NSInvalidArgumentException», причина: '- [UIButton createViewForNavigationItem:]: непризнанный селектор, отправленный на экземпляр 0x4b51bb0' – Richard