2012-02-13 2 views
0

на iOS, как я могу закрыть popover с помощью кнопки в popover.I вызвать viewController в popover, но я не могу закрыть popover, не увольняет. Как я могу это сделать Пожалуйста, помогитеiOS как я могу закрыть popover с помощью кнопки

+0

К слову «popover», вы имеете в виду UIAlertView? И по кнопке, вы имеете в виду кнопку в UIAlertView или в родительском представлении? – caleb

+0

ı dont mean UIALertView.popover isa компонент разницы. У меня есть два представления (контроллер представления) из первого представления. Я открываю popover.into во втором представлении popover. Я определяю popover в первом. со второго взгляда я не могу получить доступ к popover.I положить кнопку второго представления. Я хочу закрыть popover из второго представления –

ответ

0

Просто используйте:

- (void)dismissPopOver 
{ 
    [self.popOver dismissPopoverAnimated:YES]; 
    self.popOver = nil; 
} 

И вызывать этот метод при нажатии кнопки.

+0

У меня есть два вида (контроллер просмотра) с первого взгляда. Я открываю popover.into во втором представлении popover. . Я определяю popover в первом. со второго взгляда я не могу получить доступ к popover.I положить кнопку второй вид. Я хочу закрыть popover из второго представления. –

+0

@niyazigarip, то вы можете использовать шаблон делегата, чтобы закрыть его из другого диспетчера представлений –

+0

как я могу сделать это Im new в объективе c –

0

Обычно мне приходится создавать кнопки, которые действуют как переключатели для изменения видимости popover. Вот как я всегда их подключал. Действие для моей кнопки выглядит следующим образом:

- (void)popoverButtonTapped:(id)button 
{ 
    if (self.popover != nil) 
    { 
     // If the popover is open, close it 
     [self.popover dismissPopoverAnimated:YES]; 
     self.popover = nil; 
    } 
    else 
    { 
     // Otherwise, open a new popover 
     self.popover = ...; 
     // This is important because you want to know if the popover was closed 
     // by tapping outside it or some external event 
     self.popover.delegate = self; 
    } 
} 

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController 
{ 
    if (popoverController == self.popover) 
    { 
     // nil out our reference since the popover was dismissed 
     self.popover = nil; 
    } 
} 
0

Вы можете использовать навигационный контроллер & панель кнопок на нем. Вставьте второй контроллер просмотра в контроллер навигации. Добавьте элемент кнопки панели и отнесите его к методу, который отклонит ваш контроллер popover в первом контроллере представления. Возможно, вы можете использовать следующий код:

Как вы создаете UIPopoverController, я предполагаю, что вы уже добавили UIPopoverConterollerDelegate в файл .h вашего первого контроллера представлений.

Объявление UIPopoverController *popover; в .h файле вашего первого контроллера.

напишите следующие коды, в которых вы создаете контроллер popover.

-(IBAction)createPopoverController 
{ 
    SecondViewController *secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 

    UIBarButtonItem *dismissButton = [[UIBarButtonItem alloc] initWithTitle:@"Dismiss" style:UIBarButtonItemStyleBordered target:self action:@selector(dismissButtonPressed:)]; 

    [secondViewController.navigationItem setRightBarButtonItem:dismissButton]; 

    UINavigationController* navC = [[UINavigationController alloc] initWithRootViewController:secondViewController]; 
    popover = [[UIPopoverController alloc] initWithContentViewController:navC]; 
    popover.delegate = self; 
    [popover setPopoverContentSize:CGSizeMake(secondViewController.view.frame.size.width, secondViewController.view.frame.size.height) animated:YES]; 
    [popover presentPopoverFromRect:yourButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 
    [secondViewController release]; 
} 

-(void)dismissButtonPressed:(id)sender 
{ 
    [popover dismissPopoverAnimated:YES]; 
} 

Я надеюсь, что это вам поможет. :)

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

  • Нет связанных вопросов^_^