我正在创建一个动态数量的按钮(最终,这些按钮将被放置在水平滚动视图中),并且当按下按钮时我显示一个弹出窗口,但是我需要设置弹出框以显示为所选按钮的右侧,但此时,弹出窗口每次出现在同一个地方......
这就是我正在尝试的:
for (int i=0; i < 10; i++) {
childButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
childButton.frame = CGRectMake(100*i, 170, 100, 30);
[childButton setTitle:@"Test" forState:UIControlStateNormal];
[childButton addTarget:self action:@selector(presentPopoverMenu) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:childButton];
}
最终我要创建两行图像,但这仅用于测试...
-(void)presentPopoverMenu/*:(id)sender*/
{
MenuPickerController *mp = [[MenuPickerController alloc] init];
popoverMenu = [[UIPopoverController alloc] initWithContentViewController:mp];
popoverMenu.popoverContentSize = CGSizeMake(290, 300);
[popoverMenu presentPopoverFromRect:[childButton bounds]
inView:childButton
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:NO];
}
我在想它可能只是从最后一个按钮获取值,但我不确定,我会怎么做呢?
答案 0 :(得分:1)
当然它使用最后一个按钮值,因为你的ivar childButton
指向它。不要childButton
而是sender
。取消注释并使用。选择器也是@selector(presentPopoverMenu:)
。