Objective c UIButton UIPopUpController以编程方式
难以获取要显示的Objective c UIButton UIPopUpController以编程方式,objective-c,ios,uipopovercontroller,uibarbuttonitem,Objective C,Ios,Uipopovercontroller,Uibarbuttonitem,难以获取要显示的ui按钮项。。我想在我的UIPopUpController中放置几个ui按钮。我在故事板中做所有事情,我需要以编程方式完成这一部分 - (void)showPopover:(id)sender { if(![popoverController isPopoverVisible]) { myPopOver = [[PopUp alloc] init]; popoverController = [[UIPopoverController
ui按钮
项。。我想在我的UIPopUpController
中放置几个ui按钮。我在故事板中做所有事情,我需要以编程方式完成这一部分
- (void)showPopover:(id)sender
{
if(![popoverController isPopoverVisible])
{
myPopOver = [[PopUp alloc] init];
popoverController = [[UIPopoverController alloc] initWithContentViewController:myPopOver] ;
[popoverController setPopoverContentSize:CGSizeMake(300, 200.0f)];
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
CGRect rect = (CGRect)[sender frame];
rect.origin.y = self.view.frame.size.height - rect.size.height;
[popoverController presentPopoverFromRect:rect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
else
{
[popoverController dismissPopoverAnimated:YES];
}
}
您可以使用UINavigationController(它已经有一个导航栏,您可以在其中附加按钮项),并将其添加为UIPopoverController的内容。可以使用initWithRootViewController方法对UINavigationController进行初始化。在这种情况下,控制器将是您的弹出类。例如,在showPopover方法中,可以执行以下操作:
PopUp* myPopOver = [[PopUp alloc] init];
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:myPopOver];
popoverController = [[UIPopoverController alloc] initWithContentViewController:navController];
// do other stuff here to present you UIPopoverController
[myPopOver release];
[navController release];
- (void)somethingSelector:(id)sender
{
// your custom actions
}
现在,在您的PopUp类中的viewDidLoad方法中,您可以自定义UINavigationController导航栏。例如:
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *aButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain target:self action:@selector(somethingSelector:)];
self.navigationItem.rightBarButtonItem = aButtonItem;
[aButtonItem release];
}
其中,somethingSelector如下所示:
PopUp* myPopOver = [[PopUp alloc] init];
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:myPopOver];
popoverController = [[UIPopoverController alloc] initWithContentViewController:navController];
// do other stuff here to present you UIPopoverController
[myPopOver release];
[navController release];
- (void)somethingSelector:(id)sender
{
// your custom actions
}
编辑
或者,您可以避免使用UINavigationController,并在弹出类中创建UIToolbar。在UIToolbar内部,可以附加UIBarButtonims。请参见您可以使用UINavigationController(它已经有一个导航栏,您可以在其中附加按钮和项目),并将其添加为UIPopoverController的内容。可以使用initWithRootViewController方法对UINavigationController进行初始化。在这种情况下,控制器将是您的弹出类。例如,在showPopover方法中,可以执行以下操作:
PopUp* myPopOver = [[PopUp alloc] init];
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:myPopOver];
popoverController = [[UIPopoverController alloc] initWithContentViewController:navController];
// do other stuff here to present you UIPopoverController
[myPopOver release];
[navController release];
- (void)somethingSelector:(id)sender
{
// your custom actions
}
现在,在您的PopUp类中的viewDidLoad方法中,您可以自定义UINavigationController导航栏。例如:
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *aButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain target:self action:@selector(somethingSelector:)];
self.navigationItem.rightBarButtonItem = aButtonItem;
[aButtonItem release];
}
其中,somethingSelector如下所示:
PopUp* myPopOver = [[PopUp alloc] init];
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:myPopOver];
popoverController = [[UIPopoverController alloc] initWithContentViewController:navController];
// do other stuff here to present you UIPopoverController
[myPopOver release];
[navController release];
- (void)somethingSelector:(id)sender
{
// your custom actions
}
编辑
或者,您可以避免使用UINavigationController,并在弹出类中创建UIToolbar。在UIToolbar内部,可以附加UIBarButtonims。参见本例中没有与uibarbuttoneim
相关的内容。。。你有什么问题?哦,好的。OP没有使用-presentFromBarButtonItem:permittedArrowDirections:animated:
这一事实让我感到震惊。这是一个显而易见的选择。对不起,它应该是UIButton(不是UIBarButton),我很抱歉让修改花了这么长时间。。我发帖了,这是我第一次回复。我试图在一个空的UIPopUpController中放置几个UIButton。本例中没有与UIBarButtonItem
相关的内容。。。你有什么问题?哦,好的。OP没有使用-presentFromBarButtonItem:permittedArrowDirections:animated:
这一事实让我感到震惊。这是一个显而易见的选择。对不起,它应该是UIButton(不是UIBarButton),我很抱歉让修改花了这么长时间。。我发帖了,这是我第一次回复。我正试图在一个空的UIPopUpController中放置几个UIButton。如果这是我发布时使用UIButton的问题(固定帖子)。我是否需要添加CGRect并将UIButton放在coodinates中?如果这是我发布时使用UIButton的问题(固定帖子)。我是否需要添加CGRect并将UIButtons放在坐标中?