我想从popover视图返回主视图 在这里我解释你
-(void)tapAction1:(UITapGestureRecognizer*) sender
{
Clicked = sender.view.tag-500;
DemoViewController *sign = [[DemoViewController alloc]initWithNibName:@"DemoViewController" bundle:nil];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
UIViewController* popoverContent = [[UIViewController alloc]init];
UIView* popoverView = [[UIView alloc]
initWithFrame:CGRectMake(0, 0, 100, sign.view.frame.size.height)];
popoverView.backgroundColor = [UIColor clearColor];
popoverContent.view = popoverView;
[popoverView addSubview: sign.view];
//resize the popover view shown
//in the current view to the view's size
popoverContent.contentSizeForViewInPopover = CGSizeMake( sign.view.frame.size.width, sign.view.frame.size.height);
//create a popover controller
UIPopoverController* popover = [[UIPopoverController alloc]
initWithContentViewController:popoverContent];
CGRect popoverRect = [self.view convertRect:[sender.view frame]
fromView:[sender.view superview]];
popoverRect.size.width = MIN(popoverRect.size.width, 500);
popoverRect.origin.x = popoverRect.origin.x;
//popoverRect.size.height = ;
//present the popover view non-modal with a
//refrence to the toolbar button which was pressed
[popover presentPopoverFromRect:popoverRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
//release the popover content
[popoverView release];
[popoverContent release];
//[[self view] addSubview:sign.view];
[UIView commitAnimations];
}
现在在demoviewcontroller中是一个xib。其中我想放一个名为close的按钮,我想关闭这个popover。
答案 0 :(得分:1)
我会在UIPopoverController* popover
中将DemoViewController
设为属性。
@property (nonatomic, strong) UIPopoverController* popover;
然后你可以将你发布的代码中分配的popover传递给这个类:
sign.popover = popover;
将此选择器添加到DemoViewController
- (IBAction) didClickDismissPopoverButton:(id)sender
{
[self.popover dismissPopoverAnimated:YES];
}
然后只需将此IBAction与Interface Builder中的UIButton Touch Up Inside事件连接即可。
答案 1 :(得分:1)
在DemoViewController中添加按钮,如下所示:
UIButton *btnClose = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btnClose addFrame:CGRectMake(20,20,80,30)];
[btnClose setTitle:@"Close" forState:UIControlStateNormal];
[btnClose addTarget:self action:@selector(dissmissPopOver:) forControlEvents:UIControlEventTouchUpInside];
[sign addSubView:btnClose];
现在选择器是:
- (void)dissmissPopOver:(id)sender
{
[popover dismissPopoverAnimated:YES];
}