Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c UIButton UIPopUpController以编程方式_Objective C_Ios_Uipopovercontroller_Uibarbuttonitem - Fatal编程技术网

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放在坐标中?