Я настоятельно рекомендую вам не слабую ссылку UIKit. Как мы упоминали в наших комментариях KennyTM, это может скрыть будущие проблемы компоновщика и привести к сбоям. Мне также просто не нравится говорить компоновщику, что UIKit является необязательным, когда это явно не так. Большой хак.
Вместо этого инициализируйте и вызовите UIPopoverController косвенно, используя NSClassFromString:
Class popover = NSClassFromString(@"UIPopoverController");
if (nil != popover)
{
self.myPopover = [[popover alloc] initWithContentViewController:myContent];
}
Если у вас все еще есть ошибки компоновщика, вам может потребоваться вызвать сообщения UIPopoverController с помощью NSSelectorFromString:
Class popover = NSClassFromString(@"UIPopoverController");
if (nil != popover)
{
SEL myInit = NSSelectorFromString(@"initWithContentViewController:");
self.myPopover = [[popover alloc] performSelector:myInit withObject:myContent];
}
Для переносимости я рекомендую написать прокси-объект для обработки этих деталей реализации.