2013-05-05 2 views
0

Прилагаются снимки одного приложения iPhone, которое я создал. У меня есть segue из ячейки Event на второй экран, список приглашенных. У меня есть еще один сеанс от приглашенных на Checkin. Итак, когда я перехожу из «События в приглашения», кнопка навигации показывает «События», что я и хочу. Тем не менее, когда я нажимаю на ячейку Lisa Webb, на контрольной панели кнопка навигации показывает Lisa Webb. Когда я нажимаю на кнопку навигации Lisa Webb, мне показана одна и та же страница проверки, но теперь на навигационной кнопке отображается событие A, которое я нажал на список событий. Я хочу показать приглашенным вместо Лизы Уэбб на странице регистрации, а затем вернуться к приглашенным. Я не могу понять, как это сделать. Я использую навигационный контроллер.Кнопка кнопки обратной кнопки навигации показывает один и тот же диспетчер представлений

Events

Invitees

Checkin

Checkin after Lisa Webb button is clicked

Segues

Ниже приведен код, у меня есть для prepareForSegue от Приглашенные (2-ой) к Checking (третий)

#pragma mark - Segue 
     -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
     if ([[segue identifier] isEqualToString:@"InviteesToCheckIn"]) { 
      //UIViewController *inviteesViewController = [segue destinationViewController]; 
      CheckInViewController *checkInViewController = [segue destinationViewController]; 
      // In order to manipulate the destination view controller, another check on which table  (search or normal) is displayed is needed 
      if(sender == self.searchDisplayController.searchResultsTableView) { 
       NSIndexPath *indexPath = [self.searchDisplayController.searchResultsTableView  indexPathForSelectedRow]; 
      NSString *destinationTitle = [[filteredInviteesArray objectAtIndex:[indexPath row]] InviteeName]; 
      NSNumber *selectedInviteeId = [[filteredInviteesArray objectAtIndex:[indexPath row]] InviteeId]; 
      [checkInViewController setTitle:destinationTitle]; 
      checkInViewController.inviteeId = selectedInviteeId; 
     } 
     else { 
      NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
      NSString *destinationTitle = [[theInvitees objectAtIndex:[indexPath row]] InviteeName]; 
      NSNumber *selectedInviteeId = [[theInvitees objectAtIndex:[indexPath row]] InviteeId]; 
      [checkInViewController setTitle:destinationTitle]; 
      checkInViewController.inviteeId = selectedInviteeId; 
     } 

    } 
} 

Прагма знак - Табличное делегат

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Navigation logic may go here. Create and push another view controller. 
    /* 
    <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil]; 
    // ... 
    // Pass the selected object to the new view controller. 
    [self.navigationController pushViewController:detailViewController animated:YES]; 
    */ 
    [self performSegueWithIdentifier:@"InviteesToCheckIn" sender:tableView]; 
} 
+0

Трудно сказать, что происходит из вашего описания - вам нужно более подробно описать, что вы настроили в IB.Если бы вы могли опубликовать изображение, которое показывает ваши segues, это было бы хорошо. – rdelmar

+0

Я добавил изображение к segues (5-й pic) – shresthaal

+0

Я все еще смущен о том, что происходит. Вы говорите, re в CheckInViewController (с заголовком Lisa Webb и обратной кнопкой Lisa Webb), и вы нажмете на эту кнопку назад, она перенесет вас в другую сцену CheckInViewController с Лизой Вебб как название и событие A в качестве кнопки «Назад»? – rdelmar

ответ

0

Если Вы желаете изменить прежнее название буквально «приглашенным», как вы говорите, то просто набор self.title = @ «приглашенным» перед к методу segue (prepareForSegue). Затем навигация покажет, что на следующей странице для кнопки «Назад». Когда вы вернетесь (используя выход segue или pop, вы можете вернуть заголовок на событие A или все, что вы запрашиваете.

+0

Привет, Марк, я устанавливаю заголовок следующего диспетчера представлений, когда я перехожу от приглашенных к Checkin.Но это также устанавливает текст кнопки навигации (см. Рис. 3). Я хочу, чтобы nav btn на 3-м рисунке указывал «Приглашенные» и название как имя, на которое я нажал на втором рисунке. – shresthaal

+0

Заголовок кнопки назад установлен на предыдущий заголовок контроллера. Поэтому, если вы хотите изменить этот заголовок, вам нужно изменить заголовок предыдущего контроллера представлений. Если вы хотите, чтобы представленный текст viewControllers был чем-то другим, вам нужно установить его из метода prepareForSegue в предыдущем контроллере. Вы можете получить ссылку на предыдущий контроллер либо путем передачи его в методе prepareForSegue, либо путем доступа к диспетчеру просмотра вашего навигационного стека (1 вид назад). –

Смежные вопросы