iPhone - 单元格内的按钮将新视图推送到屏幕上
Posted
技术标签:
【中文标题】iPhone - 单元格内的按钮将新视图推送到屏幕上【英文标题】:iPhone - button within cell to push a new view onto screen 【发布时间】:2011-03-22 18:02:15 【问题描述】:大家好,我好像遇到了问题。我有一个应用程序(基于视图),它在屏幕的下半部分显示了一个 UITableView,选择了一个单元格,然后调出一个占据屏幕底部的自定义单元格。我在这个单元格的右下角有一个“更多信息”按钮,当它被选中时,我希望它打开一个新的 NIB 文件,但是我唯一能做的就是从屏幕上删除 tableView ..我不确定在“addSubview”之前使用什么,因为它不是我认为的 self.view。
- (void)moreInfoButton:(id)selector
NSLog(@"Button Pressed");
MoreInfo *mivc = [[MoreInfo alloc] initWithNibName:@"MoreInfo" bundle:nil];
[self.tableview removeFromSuperview];
//[self.view addSubview:(UIView *)mivc];
[self.navigationController pushViewController:mivc animated:YES];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"List of Events" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
[mivc release];
另外,(UIView *) 也不能解决问题。有什么建议吗?
附: UITableView根本不用navigationController,就是table,会不会是这个问题?
另外,如果我选择只推送一个新视图,而不使用该视图的 navigationViewController,这可能吗?
【问题讨论】:
【参考方案1】:如果不了解您的程序,我无法回答您的导航控制器问题。要回答您的其他问题,无需使用导航控制器,您只需添加一个新视图:
newViewVC = [[NewViewVC alloc]initWithNibName:@"NewViewVC" bundle:nil];
[self.view addSubview:newViewVC.view];
通常 newViewVC 在您的 .h 中声明,因此您可以稍后发布它。
【讨论】:
当使用这种方式时,在NewViewVC中,我有一个按钮可以返回上一个视图,其内容只是[self.view removeFromSuperview],但是它只会在点击两次时关闭,有什么理由吗? 如果您以某种方式实例化并添加两次 NewViewVC 会导致这种情况。如果您还没有看过他们,请查看关于 iPhone 应用程序开发的斯坦福视频:link【参考方案2】:我找到了一种简单的方法:将其作为模态推送。
- (void)moreInfoButton:(id)selector
NSLog(@"Button Pressed");
MoreInfo *mi= [[MoreInfo alloc] initWithNibName:@"MoreInfo" bundle:nil];
[self presentModalViewController:mi animated:YES];
所需要的只是新 nib 文件中的后退按钮。
【讨论】:
以上是关于iPhone - 单元格内的按钮将新视图推送到屏幕上的主要内容,如果未能解决你的问题,请参考以下文章
当点击collectionView单元格内的按钮时,如何从tableViewCell内的collectionView获取表视图行并推送到viewController
将新视图推送到UINavigationController iPhone SDK
UIPopovercontroller 在将新的视图控制器推送到 navccontroller 后调整大小