基于IPhone视图的应用程序转到主视图

时间:2011-10-11 05:47:04

标签: iphone ios cocoa-touch

在我的基于视图的应用程序中,它包含三个视图。第一个视图(主视图)调用第二个视图。第二个视图调用第三个视图(详细视图)。我想在第三个视图中添加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'的按钮 当用户单击此按钮时,我想添加返回第一个视图(主视图)。我不知道该怎么做。

5 个答案:

答案 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