如何通过按下来自子视图的按钮来使用 popViewController Animated 弹出视图?
Posted
技术标签:
【中文标题】如何通过按下来自子视图的按钮来使用 popViewController Animated 弹出视图?【英文标题】:How to pop a view using popViewControllerAnimated by pressing on a button which is from a subview? 【发布时间】:2011-09-17 11:36:09 【问题描述】:我正在创建一个照片浏览器。
用户从UITableView
中选择一个单元格,然后使用UINavigationController
将它们推送到照片浏览器视图。
在我的“PhotoBrowser.m”中,我有:
//Caption UIView
CGRect capFrame = CGRectMake(1024-400, 0, 400, 768);
overlayWindow = [[UICaptionOverlay alloc] initWithFrame:capFrame];
overlayWindow.backgroundColor = [UIColor clearColor];
[self addSubview:overlayWindow];
我调用一个子视图并将内容覆盖在我的图像上。即在一系列照片上添加标题。
在我的子视图“UICaptionOverlay.m”中,我有一个按钮:
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(25, 300, 200, 50)];
button.backgroundColor = [UIColor blueColor];
[button setTitle:@"Return to Table View" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonPressedClose) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:button];
[button release];
这会在我的照片上方显示一个带有一些标签和一个按钮的UIView
。
按下按钮时,如何将用户带回UITableView
,并选择另一个单元格?
我可以打电话:
[photoBrowser performSelector:@selector(popViewControllerToTable) withObject:nil afterDelay:0.2];
来自“PhotoBrowser.m”,所以我知道至少可以弹出视图。
popViewControllerToTable 有 [self.navigationController popViewControllerAnimated:YES];
提前感谢大家..
【问题讨论】:
【参考方案1】:最简单的方法是在 UICaptionOverlay
实例中保留对父 viewController 的引用。
然后在buttonPressedClose
选择器中调用它:
[self.myParentViewController.navigationController popViewControllerAnimated:YES];
【讨论】:
谢谢!在 UICaptionOverlay 中使用[self.superview.buttonPressClose];
在 PhotoBrowser.m 中调用另一个 buttonPressClose
,它运行 [self.navigationController popViewControllerAnimated:YES];
现在工作正常。再次感谢!以上是关于如何通过按下来自子视图的按钮来使用 popViewController Animated 弹出视图?的主要内容,如果未能解决你的问题,请参考以下文章