UIButton UIPopUpController программно - PullRequest
1 голос
/ 22 декабря 2011

с трудностями при получении UIButton Показываемых предметов .. Я хочу разместить несколько UIButtons в моем UIPopUpController.Я делаю все в раскадровке, и мне нужно сделать этот раздел программно.

- (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];
    }
}

1 Ответ

1 голос
/ 22 декабря 2011

Вы можете использовать UINavigationController (в нем уже есть панель навигации, куда вы можете прикреплять элементы кнопок) и добавить его в качестве содержимого вашего UIPopoverController. UINavigationController может быть создан с использованием метода initWithRootViewController. В этом случае контроллером будет ваш класс Popup. Например, внутри вашего метода 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];

Теперь внутри вашего класса 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];
}

, где что-то выбрано так:

- (void)somethingSelector:(id)sender
{
   // your custom actions
}

EDIT

В качестве альтернативы вы можете избежать использования UINavigationController и создать UIToolbar внутри вашего класса PopUp. Внутри UIToolbar вы можете прикрепить UIBarButtonItems. См. Справочник по классу UIToolbar

...