на iOS, как я могу закрыть popover с помощью кнопки в popover.I вызвать viewController в popover, но я не могу закрыть popover, не увольняет. Как я могу это сделать Пожалуйста, помогитеiOS как я могу закрыть popover с помощью кнопки
ответ
Просто используйте:
- (void)dismissPopOver
{
[self.popOver dismissPopoverAnimated:YES];
self.popOver = nil;
}
И вызывать этот метод при нажатии кнопки.
У меня есть два вида (контроллер просмотра) с первого взгляда. Я открываю popover.into во втором представлении popover. . Я определяю popover в первом. со второго взгляда я не могу получить доступ к popover.I положить кнопку второй вид. Я хочу закрыть popover из второго представления. –
@niyazigarip, то вы можете использовать шаблон делегата, чтобы закрыть его из другого диспетчера представлений –
как я могу сделать это Im new в объективе c –
Обычно мне приходится создавать кнопки, которые действуют как переключатели для изменения видимости 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;
}
}
Вы можете использовать навигационный контроллер & панель кнопок на нем. Вставьте второй контроллер просмотра в контроллер навигации. Добавьте элемент кнопки панели и отнесите его к методу, который отклонит ваш контроллер 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];
}
Я надеюсь, что это вам поможет. :)
К слову «popover», вы имеете в виду UIAlertView? И по кнопке, вы имеете в виду кнопку в UIAlertView или в родительском представлении? – caleb
ı dont mean UIALertView.popover isa компонент разницы. У меня есть два представления (контроллер представления) из первого представления. Я открываю popover.into во втором представлении popover. Я определяю popover в первом. со второго взгляда я не могу получить доступ к popover.I положить кнопку второго представления. Я хочу закрыть popover из второго представления –