如何在基于视图的应用程序中返回到一个视图到另一个视图

时间:2010-12-16 14:21:04

标签: iphone

我做了一个简单的基于视图的应用程序。

我所做的是创建现有视图之外的视图。

表示除了创建另一个视图

之外,还有一个名为main的视图.xib文件
IBOutlet UIView *view_additional;

在主视图中按钮单击我调用view_additional视图。

对于view_additional视图,我将导航栏放在一个名为back的条形按钮上。

在后退按钮点击事件中,我需要返回主视图。

在按钮点击操作中,我写了以下代码。

[view_additional removeFromSuperview];

但它不是打开主视图,显示白屏。

出了什么问题。

如何从其他视图返回到主视图。

提前感谢你。

4 个答案:

答案 0 :(得分:1)

用于显示view_additional的代码,而不是使用self.view = view_additional

尝试使用,点击按钮

[self addSubview: view_additional];

一旦完成,您的代码应该按照您想要的方式正常工作。

在处理视图时,如果您更改视图,然后将其删除,就像在代码中一样,那么剩下的就是主应用程序窗口。该窗口将没有视图。从它的外观来看,您想要加载一个新视图,然后在完成后将其删除。您可以通过将新视图添加为子视图而不是完全更改父视图来完成此操作。你可以做的另一件事是为原始视图设置一个IBOutlet,这样你就可以为两个视图提供一个插座,然后你可以将它切换回来,而不是从superview中删除你的additional_view。所以Back Button的代码就是

self.view = original_view;
单击后退按钮

。我希望这不会让你感到困惑。如果您有任何问题,请告诉我。

这两种方法都适用于您想要做的事情。

答案 1 :(得分:1)

我将问题解决为

而不是[self.view = view_additional];

我用

[self addSubview: view_additional];

要返回按钮中的原始视图,请单击

我用

[view_additional removeFromSuperview];

答案 2 :(得分:0)

MahesBabu,完全我建议你做什么。只有我提供了为什么你应该这样做的背景信息。

答案 3 :(得分:0)

@ MaheshBabu: 这是您可以用来进行下一个视图或后退的常用代码,只需更改您想要按的按钮名称以及您想要去的视图名称。例如,在后退按钮按下你想要进入库视图然后写下这段代码 -

- (IBAction)backButtonPressed:(id)sender {     libraryView * libraryview = [[libraryView alloc] initWithNibName:nil bundle:nil];     libraryview.modalTransitionStyle = UIModalTransitionStyleCoverVertical;     [self presentModalViewController:libraryview animated:YES];     [libraryview发布]; }

让我知道你的问题是否得到解决。