Хобрук: Ваш путь к мастерству в программировании

Презентация Popover на iPhone с использованием UIPopoverPresentationController

Привет всем, я хочу сделать всплывающее окно для iPhone, так что вот мой код, в котором я ошибаюсь, пожалуйста, предложите мне создать что-то вроде рисунка ниже, но мой покрывает весь экран, и я не хочу использовать переход. В общем, я хочу, чтобы Я нажимаю кнопку, и появляется всплывающее окно контроллера просмотра с измененным размером, как мне этого добиться, пожалуйста, помогите. Я следовал этому руководству. https://www.youtube.com/watch?v=UQBbJQNEDA4 enter

#import "ViewController.h"
#import "Popup.h"

@interface ViewController ()<UIPopoverPresentationControllerDelegate>
{
    Popup * popupController;
    UIPopoverPresentationController *popupPresentationController;
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.


}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)popupOnClick:(id)sender {

    popupController=[self.storyboard instantiateViewControllerWithIdentifier:@"Popup"];
    popupController.modalPresentationStyle=UIModalPresentationPopover;
    popupPresentationController= [popupController popoverPresentationController];
    popupPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;
    popupController.preferredContentSize=CGSizeMake(150, 300);
    popupPresentationController.delegate = self;

    [self presentViewController:popupController animated:YES completion:NULL];


    // in case we don't have a bar button as reference
    popupPresentationController.sourceView = _popupButton;
    popupPresentationController.sourceRect = _popupButton.frame;
}
- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller traitCollection:(UITraitCollection *)traitCollection {
    return UIModalPresentationNone;
}

@end

  • Попробуйте также реализовать adaptivePresentationStyleForPresentationController:traitCollection:. 28.12.2016
  • @LeoNatan, не могли бы вы отредактировать код для меня, сэр. 28.12.2016
  • Нет. Прочтите документацию и внедрите ее в свой код. 28.12.2016
  • @LeoNatan не работает ни с кем другим, кто может дать предложения 28.12.2016
  • Я точно знаю, что это работает, потому что я использовал его на iPhone. 28.12.2016
  • @LeoNatan Сэр, я пробовал, так как я немного новичок в разработке iOS, пожалуйста, измените коды, если это возможно. 28.12.2016
  • Отредактировал ваш ответ - посмотрите, поможет ли это. 28.12.2016
  • @LeoNatan Сэр, я уже пробовал, но не получилось. 28.12.2016
  • @LeoNatan Я также пробовал, selectedcontentSize, но не работал. 28.12.2016
  • Давайте продолжим обсуждение в чате. 28.12.2016
  • @LeoNatan stackoverflow.com/questions/41479764/ пожалуйста, помогите мне в этом 05.01.2017

Ответы:


1

Вот ваша проблема:

[self presentViewController:popupController animated:YES completion:nil];
popupPresentationController= [popupController popoverPresentationController];
popupPresentationController.delegate = self;

Этот код находится в неправильном порядке. Вы должны установить delegate перед вызовом presentViewController.

28.12.2016
  • Спасибо за помощь :) 28.12.2016
  • Новые материалы

    Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
    Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

    Фишинг — Упаковано и зашифровано
    Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

    ВЫ РЕГРЕСС ЭТО?
    Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

    Не зря же это называют интеллектом
    Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

    LeetCode Проблема 41. Первый пропущенный положительный результат
    LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..

    Расистский и сексистский робот, обученный в Интернете
    Его ИИ основан на предвзятых данных, которые создают предрассудки. Он словно переходит из одного эпизода в другой из серии Черное зеркало , а вместо этого представляет собой хронику..

    Управление состоянием в микрофронтендах
    Стратегии бесперебойного сотрудничества Микро-фронтенды — это быстро растущая тенденция в сфере фронтенда, гарантирующая, что удовольствие не ограничивается исключительно бэкэнд-системами..