在我的基于视图的应用程序中,它包含三个视图。第一个视图(主视图)调用第二个视图。第二个视图调用第三个视图(详细视图)。我想在第三个视图中添加home函数以返回第一个视图(Main View)。 目前我在第三个视图中添加Home按钮。但我不知道如何编写此功能。以下是我的代码:
//In First view(main view)
//call second view(list view) in button click
-(IBAction) doctorList:(id)sender
{
if(self.doctorViewController==nil)
{
DoctorViewController *doctorView=[[DoctorViewController alloc] initWithNibName:@"DoctorViewController" bundle:[NSBundle mainBundle]];
self.doctorViewController=doctorView;
[doctorView release];
}
self.view addSubview:self.doctorViewController.view];}
}
//In second View(list view)
//Call third view in table cell click
-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath{
DoctorItem *physician=[[DoctorItem alloc]init];
physician=(DoctorItem*)[self.tableDataList objectAtIndex:indexPath.row];
DoctorDetail *detail=[[DoctorDetail alloc]init];[tableView.superview addSubview:detail.view];
[physician release];
}
在第三个视图中,有一个标签文字为'Home'的按钮 当用户单击此按钮时,我想添加返回第一个视图(主视图)。我不知道该怎么做。
答案 0 :(得分:3)
我没有在Phoenix的帖子中看到任何关于UINavigationControllers的提及......所以如果我修复这段代码,我会创建一个这样的IBAction方法:
- (IBAction) homeButtonPressed: (id) sender
{
// and remove the subviews
NSArray * subviews = [self.view subviews];
for(UIView * aSubview in subviews)
{
// this removes and releases the subviews you allocated
[aSubview removeFromSuperview];
}
}
并将您的按钮操作连接到该方法。
另外,我建议为DoctorView和DoctorViewController子类化UIView而不是UIViewController。如果您只是将子视图添加到根视图控制器上,则不需要UIViewControllers带来的额外行李。
答案 1 :(得分:1)
由于您只是在视图控制器之间导航,因此您只需在最后一个视图控制器中执行popToRootViewController
,这将带您返回rootViewController
(您的主视图)。
答案 2 :(得分:1)
Phoenix Kyaw,
试试这个,
[self.navigationController pushViewController:homeView animated:YES];
这里homeView是你的homeViewController(你想去的地方)实例..
答案 3 :(得分:1)
请尝试使用这个......
[self.view.superview removeFromSuperview];
答案 4 :(得分:0)
试试这个,
这对我有用
[self.view addSubview:firstViewController.view];
或试试这个
[self presentModalViewController:firstViewController animated:YES]; // this is deprecated in ios6.0