我希望我可以忽略流行视图
但它似乎只在弹出视图下标记了单元格
pop视图将被忽略,我尝试添加此方法
[self.view removeFromSuperview];
它只删除表视图,弹出视图框仍然存在,只有没有内容视图
任何回复都会有所帮助:)
谢谢
韦伯
/ ****** ****** EDIT / 我在项目中使用WEPopoverView
这是我选择表格视图时创建弹出视图的代码
if (indexPath.row==2) {
DaysOfWeek *popView = [[DaysOfWeek alloc]init];
UINavigationController *navPopView = [[UINavigationController alloc] initWithRootViewController:popView];
if (self.popoverController) {
[self.popoverController dismissPopoverAnimated:YES];
self.popoverController = nil;
}
else {
self.popoverController = [[[WEPopoverController alloc] initWithContentViewController:navPopView] autorelease];
CGRect frame = [tableView cellForRowAtIndexPath:indexPath].frame;
[self.popoverController presentPopoverFromRect:frame
inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown|UIPopoverArrowDirectionUp
animated:YES];
}
}
/ ****** ****** EDIT2 / 我在创建弹出视图时尝试添加完成按钮 这是代码,但它只显示导航,没有完成按钮
DaysOfWeek *popView = [[DaysOfWeek alloc]init];
UINavigationController *navPopView = [[UINavigationController alloc] initWithRootViewController:popView];
navPopView.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(hidePopView)];
答案 0 :(得分:1)
在添加弹出视图时,将标签设置为该popupView,然后将其添加为子视图,
然后使用:
for (UIView *tempView in [self.view subviews]) {
if ([tempView tag]==urTag) {
[tempView removeFromSuperview];
}
}
这将检索所有子视图,然后仅删除您的弹出视图
答案 1 :(得分:0)
我认为只需发布您的self.popoverController
就可以正确解决问题,包括所有超级视图。
您还可以查看dealloc
中的WEPopoverController
方法,了解哪些观点涉及并需要删除:
[self dismissPopoverAnimated:NO];
[contentViewController release];
[containerViewProperties release];
[passthroughViews release];
无论如何,我看到的唯一优势是可以使用dismissPopoverAnimated
来调用YES
。
希望这有帮助。
编辑:
如何将完成按钮连接到控制器?
通过DaysOfWeek
的只读属性访问您的按钮;然后在你的控制器中,当你创建DaysOfWeek
时,执行:
DaysOfWeek *popView = [[DaysOfWeek alloc]init];
[propView.doneButton addTarget:self action:@selector(fullyDismissPopover) forControlEvents:UIControlEventTouchUpInside];
在fullyDismissPopover中,你调用release或调用上面突出显示的函数序列(但我认为释放会更好)。
答案 2 :(得分:0)
DaysOfWeek *popView = [[DaysOfWeek alloc]init];
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeContactAdd];
[doneButton addTarget:self action:@selector(hidePopView) forControlEvents:UIControlEventTouchUpInside];
popView.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:doneButton] autorelease];
UINavigationController *navPopView = [[UINavigationController alloc] initWithRootViewController:popView];
这也可以解决问题!