UIPopOverController + UITableView - Приховування спливаючого елемента, коли вибрано клітинку

У моєму контролері Popover, у мене є подання таблиці. При виборі клітинки я хочу приховати поп. Як це досягти.

10

4 Відповіді

У файлі заголовка контролера корінного перегляду:

@property (strong, nonatomic) UIStoryboardPopoverSegue* popSegue;

У файлі реалізації:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if( [[segue identifier] isEqualToString:@"popover"] )
    {
        NSLog(@"%@",[segue destinationViewController]);
        self.popSegue = (UIStoryboardPopoverSegue*)segue;

        [[segue destinationViewController] setDelegate:self];
    }
}

Якщо ви хочете приховати показ:

    if ([self.popSegue.popoverController isPopoverVisible]) 
    {
        [self.popSegue.popoverController dismissPopoverAnimated:YES];        
    }

У вигляді таблиці додайте делегат і реалізуйте делегат в кореневому контролері перегляду. Коли викликається метод делегування, використовуйте код, щоб відхилити його.

9
додано
Добре на те, щоб вирішити цю загадку.
додано Автор CodaFi, джерело

Дозвольте мені запропонувати трохи інше рішення, яке полягає в передачі посилань контролера popover замість посилання segue.

У файлі реалізації контролера подання джерела:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue destinationViewController] isKindOfClass:[MyDestViewController class]]) {
        MyDestViewController* viewController = (MyDestViewController*)[segue destinationViewController];
        UIStoryboardPopoverSegue* popoverSegue = (UIStoryboardPopoverSegue*)segue;
        [viewController setPopoverController:[popoverSegue popoverController]];
    }
}

У заголовному файлі контролера перегляду призначення:

@property (weak, nonatomic) UIPopoverController* popoverController;

У файлі реалізації контролера перегляду призначення:

@synthesize popoverController;

Той самий файл, коли ви хочете відкинути спливаюче вікно:

[popoverController dismissPopoverAnimated:YES];
9
додано

Документи Apple рекомендують:

Усунення поп-версії програмно вимагає покажчика на контролер popover. Єдиний спосіб отримати такий покажчик - це зберегти його самостійно, як правило, в контролері перегляду вмісту. Це гарантує, що контролер перегляду вмісту зможе відхилити popover у відповідь на відповідні дії користувача.

бібліотека/ios/# Документація/WindowsПерегляди/Концептуальні/ViewControllerCatalog/Chapters/Popovers.html

1
додано

у didSelectRowAtIndexPath спробуйте цей код

[viewController.popoverController dismissPopoverAnimated:YES];
1
додано
IT KPI iOS
IT KPI iOS
74 учасників

Чат обсуждения IOS. - Оффтоп, флуд, оскорбления и вбросы здесь не приняты. - За нарушение - предупреждение или mute на неделю. - За спам и рекламу - ban. Все чаты IT KPI: https://t.me/itkpi/602

ios_jobs_ua
ios_jobs_ua
27 учасників

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.