2 curie 87 curie_87 于 2012.09.10 13:31 提问

如何在Iphone里切换视图?

我是objective-c的初学者,请求大家的帮助,如何在iPhone应用中切换视图?

7个回答

niangzhi
niangzhi   2012.09.10 13:43
已采纳

IPhone中视图切换,网上常见的方法都是用viewcontrol,在viewcontrol中插入不同的视图实现,见下面的代码

 [self.view insertSubview:self.mainview.view atIndex:0];  

只要切换不同的mainview就可以实现,网上常见的方法也是如此,不过我却想用另外一种方法,就是直接操作window,
在window中切换view,实现方法如下:

 [viewController.view removeFromSuperview];
 [window addSubview:viewset.view];

其中viewController是当前窗口,首先从父窗口中移除,然后调用window addSubview方法即可。
不过使用第二个方法,出现了一个问题就是原来的主窗口显示正常,但是切换到第二个窗口是,窗口被电池栏给覆盖了,显得很奇怪,目前无解。

1.首先用pushViewController切换到下一个视图的,切换回来用popViewControllerAnimated
也就是:
切换视图:

[self.tabBarController.navigationController pushViewController:_appMore animated:YES];

或者

[self.navigationController pushViewController:_appMore animated:YES];

切换回来的时候用:

[self.navigationController popViewControllerAnimated:YES];

2.两个view之间切换:
假设aimview是目标视图
currentview是当前视图
首先移除当前view

[currentview.view removeFromSuperview];
[self.view insertSubview:aimview.view atIndex:0];
mansuifengqi
mansuifengqi 我认为这个答案要比下边的那个详细很多。还得现翻译英语,这事太困难了。
大约 5 年之前 回复
curie_87
curie_87 非常感谢你的答案,很条理~~
大约 5 年之前 回复
hjue
hjue   2012.09.28 16:41

视图切换可以通过在Controller中给view赋值实现,如:

self.view = newViewController.view;
yongyong_21
yongyong_21   2012.09.10 14:00
yongyong_21
yongyong_21 我有空再把翻译后的放上来,有好的解决方法我再共享啊。
大约 5 年之前 回复
curie_87
curie_87 看的出,你对切换视图这方面的了解的很多,但是英文版着实看不懂!!
大约 5 年之前 回复
u010771027
u010771027   2013.05.20 17:49

给你提供几个国外版本的链接,好好研究下,希望对你有帮助
View Programming Guide for iOS
iPhone View Switching Tuturial
How To Switch Views using Multiple Viewcontrollers (Method 1)
Switching Views with Animation
How to animate View swap on simple View iPhone App?

u011054533
u011054533   2013.06.13 17:18

Controller中给view赋值实现

u010646502
u010646502   2016.04.20 16:53

self.view insertSubview:self.mainview.view atIndex:0

u1254z62
u1254z62   2017.01.03 18:11

视图切换可以通过在Controller中给view赋值实现,如:

self.view = newViewController.view;

Csdn user default icon
上传中...
上传图片
插入图片