2015-10-21 1 views
0

Я хочу представить свой popover в другом месте. По умолчанию он начинается там, где пользователь выбирает кнопку. Я использую UIViewController вместо UIPopoverController потому UIPopoverController осуждается в iOS9popover изменение положение начальная точка (изначальный местонахождение) iOS9

class CustomPop: UIViewController, UIPopoverPresentationControllerDelegate { 

init() { 
    super.init(nibName: nil, bundle: nil) 
    self.modalPresentationStyle = UIModalPresentationStyle.Popover; 
    self.popoverPresentationController?.delegate = self; 
} 

required init?(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle{ 
    return .None 
} 
} 

//for example something like this but I need it for a popover: 
custom = CustomPop() 
custom.frame.origin.y = self.view.height - 100 
// is there a way to use CGRectMake for the popover to accomplish this? 
+0

вы хотите поповер быть в точном месте или, возможно, вы хотите стрелка должна быть слева от размера popover или посередине или слева или что-то в этом роде? – Korpel

ответ

0

Новое решение IOS 8+

// Create Controller 

var popoverContent = CustomPop() 

// Get NavController 
var nav = UINavigationController(rootViewController: popoverContent) 
nav.modalPresentationStyle = UIModalPresentationStyle.Popover 

// Get PopoverPresentationController 
var popover = nav.popoverPresentationController as UIPopoverPresentationController 
popover.sourceView = self.view 
popover.sourceRect = CGRectMake(100,100,0,0) 

// Show Popover 
self.presentViewController(nav, animated: true, completion: nil) 

Используйте UIPopoverController Устаревшие

// Create Controller 
UIPopoverController *pc = [[UIPopoverController alloc] initWithContentViewController:vc]; 

// Set Point 
[pc presentPopoverFromRect:CGRectMake(0, 0, 100, 100) 
        inView:self.view 
        permittedArrowDirections:UIPopoverArrowDirectionAny 
        animated:YES]; 
+0

У меня нет возможности использовать presentpopoverfromrect – SlopTonio

+0

Почему бы и нет? Вы не можете использовать UIPopoverController? – SnowMax

+0

Я добавил еще код на вопрос, чтобы показать, как я создаю popover – SlopTonio

1
custom.popoverPresentationController?.sourceRect = CGRectMake(100,100,100,100) 

CGRectMake (x.origin, y.origin, ширина, высота)

+0

Вам также нужно установить 'sourceView' контроллера popover. –

+0

Да, я установил sourceView = sender как? UIView – SlopTonio

0

попробовать это в быстры 3.1:

MZFormSheetPresentationController.appearance().movementActionWhenKeyboardAppears = .alwaysAboveKeyboard 
Смежные вопросы