Отклонить добавление контроллера представления контактов из UIPopover - PullRequest
0 голосов
/ 19 мая 2011

Привет. В моем приложении у меня есть кнопка, поэтому, когда вы нажимаете на нее, в UIPopover появляется представление добавления контакта. Это все рабочие, за исключением, когда вы нажимаете сохранить. Это не Увольнение.

-(IBAction) addcontact
{
    ABNewPersonViewController *contacts = [[ABNewPersonViewController alloc] init];
    // imagePicker.delegate = self;
    // UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:contacts];
    UINavigationController *addContactNavController = [[UINavigationController alloc] initWithRootViewController:contacts];

    popover = [[UIPopoverController alloc] initWithContentViewController:addContactNavController];

    popover.popoverContentSize = CGSizeMake(320, 1000);
    [popover presentPopoverFromRect:CGRectMake(935, 270, 175, 300) 
                             inView:self.view
           permittedArrowDirections:UIPopoverArrowDirectionRight 
                           animated:YES];
    [popover retain];
    [addContactNavController release];
    [contacts release];
}

Ответы [ 2 ]

0 голосов
/ 19 мая 2011

Реализуйте протокол ABNewPersonViewControllerDelegate и назначьте делегата в вашем методе выше -

contacts.newPersonViewDelegate = self;

Затем вы можете отклонить всплывающее окно в функции делегата -

- (void)newPersonViewController:(ABNewPersonViewController *)newPersonView 
       didCompleteWithNewPerson:(ABRecordRef)person {
    [popOver dismissPopoverAnimated:YES];
}

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
    [popOver release];
}
0 голосов
/ 19 мая 2011

хорошо

[self dismissModalViewControllerAnimated: YES]; respecively [popover dismissPopoverAnimated: YES];

должен это сделать?

Редактировать: чтобы быть более конкретным:

....

  popover = [[UIPopoverController alloc] initWithContentViewController:addContactNavController];
  addContactNavController.delegate = self;

Теперь при сохранении сделайте что-то вроде:

  -(IBAction) saveStuff {
        ... saving...
        [delegate closePopup];
   }

и в вашем файле с - (IBAction) addcontact вы делаете:

   -(void) closePopup {
           [self dismissModalViewCotroller...];
   }

имеет смысл?

и да, вы должны добавить делегат-свойство в свой контроллер, если это еще не сделано

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...