如何将新的viewController推送到另一个视图控制器中的现有视图?

时间:2012-03-19 07:03:38

标签: iphone objective-c ios view uiviewcontroller

是否可以将新的viewController推送到另一个视图控制器中的现有视图?

以下是我的设置:

enter image description here

你可以看到我有一个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”

enter image description here

为什么会发生这种情况,因为它显然超出了我将其设置为推出的视图...

2 个答案:

答案 0 :(得分:2)

使用

代替“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]

答案 1 :(得分:0)

//使用导航控制器呈现新的视图控制器将对您有所帮助。

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];