如何将新的 viewController 推送到另一个视图控制器中的现有视图中?
Posted
技术标签:
【中文标题】如何将新的 viewController 推送到另一个视图控制器中的现有视图中?【英文标题】:How can I push a new viewController into an existing view within another view controller? 【发布时间】:2012-03-19 07:03:37 【问题描述】:是否可以将新的 viewController 推送到另一个视图控制器中的现有视图中?
这是我的设置开始:
你可以看到我有一个 UITableView。当点击一个单元格时,使用此代码推送一个新的视图控制器;
DetailTableViewController *viewcontroller = [[DetailTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
viewcontroller.item = (MWFeedItem *)[itemsToDisplay objectAtIndex:indexPath.row];
[self presentViewController:viewcontroller animated:YES completion:nil];
[viewcontroller release];
不幸的是,它看起来像这样,并坐在顶部的酒吧顶部,上面写着“Will Roberts”
为什么会发生这种情况,因为它显然超出了我将其设置为从中推送的视图...
【问题讨论】:
代替“presentViewController”,使用“pushViewController”... @objc,已经通过答案..您最初是如何显示表格视图的? 我在 Interface Builder 中添加了 UITableView 并将其链接起来。它由 AppDelegate 控制。 嘿,你需要一些视网膜图形 :) 【参考方案1】:代替“presentViewController”,使用
DetailTableViewController *viewcontroller = [[DetailTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
viewcontroller.item = (MWFeedItem *)[itemsToDisplay objectAtIndex:indexPath.row];
[self.navigationController pushViewController:viewcontroller animated:YES];
[viewcontroller release];
或使用模态视图控制器
[self presentModalViewController:viewcontroller animated:YES]
【讨论】:
如果我添加“self.navigationController”而不是“self”,则根本不起作用 我使用了“模态视图控制器”代码,但发生的情况与屏幕截图中的一样...【参考方案2】://展示带有导航控制器的新视图控制器会对你有所帮助。
DetailTableViewController *viewcontroller = [[DetailTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
viewcontroller.item = (MWFeedItem *)[itemsToDisplay objectAtIndex:indexPath.row];
[self.navigationController presentViewController:viewcontroller animated:YES completion:nil];
[viewcontroller release];
//已编辑
DetailTableViewController *viewcontroller = [[DetailTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
UINavigationController *nav1=[[UINavigationController alloc]initWithRootViewController:viewController1];
[self presentModalViewController:nav1 animated:YES];
【讨论】:
如果我添加“self.navigationController”而不是“self”,则根本不起作用 你的控制器 *viewController1; viewController1 = [[YourController alloc] initWithNibName:@"YourController" bundle:nil]; UINavigationController *nav1=[[UINavigationController alloc]initWithRootViewController:viewController1]; [自我presentModalViewController:viewController1动画:YES]; //试试这个sn-p肯定对你有帮助。 没有 nib 文件,只有 .h 和 .m 用于 DetailTableViewController 好的,我已经在编辑部分编辑了代码。使用这个可能会解决您的问题。以上是关于如何将新的 viewController 推送到另一个视图控制器中的现有视图中?的主要内容,如果未能解决你的问题,请参考以下文章
如何将新的 UICollectionViewController 推送到单元格单元格内的 navigationController
如何将新的视图控制器推送到当时在 tabbarcontroller 中存在的 navigationcontroller?