iOS:以编程方式在视图之间切换

时间:2014-05-01 21:07:15

标签: ios

我目前正在开发一款应用,我想知道是否有办法以编程方式在视图之间切换?我在YouTube上查看了很多关于youtube和论坛的视频,但每当人们声称他们正在以编程方式进行操作时,他们仍然使用故事板来进行一些视图切换。有没有办法在不使用故事板的情况下切换视图(仅使用纯代码)?我真的不喜欢使用界面构建器,并且只想以编程方式在视图之间切换。

如果您熟悉Android开发,我想知道是否有类似于iOS开发的Intent类。

3 个答案:

答案 0 :(得分:0)

我熟悉Android并且您对iOS术语感到困惑。首先,在Android中,您基本上使用Intent来启动新的Activity。在iOS中,您可以说UIViewController相当于Activity,因此如果您嵌套UIViewController,则可以在addChildViewController / removeFromParentViewController之间切换UIViewController。在UIViewController上找到的方法。

现在,如果你想创建一堆UIViewController像Android的后台堆栈,并提供后退按钮或后退导航,UINavigationController与热门push/popViewController:animated:

此外,作为观察,您在Storyboards中看到的所有内容都可以以编程方式完成,除了控制器之间的segue,您不能以编程方式拖动segue:))。

现在,你知道它可以以编程方式完成,但我强烈建议你尽可能多地使用Storyboards,如果你想学习iOS并看看底层是什么,你可能想要在开始使用故事板之前以编程方式做一些事情,但在那之后,请使用它们,故事板是你的朋友,你会轻易找到UI错误,你的代码不会挤满UI代码,应用程序结构会更加直观和其他可能在项目上工作的人,创建UI的简便方法。

我只能说,我希望Android有这样的工具(我知道它已经有了一个,但它与IB相比是一个垃圾)所以我也可以为Android创建UI。

答案 1 :(得分:0)

如果您指的是查看控制器,您只需以编程方式创建视图控制器,然后从实际视图控制器(self)推送或显示新的viewController。如果您有navigationController

[self.navigationController pushViewController:secondViewController animated:YES completion:nil];

或其他例如:

[self presentViewController:secondViewController animated:YES completion:nil];

您还可以在呈现新视图控制器之前选择过渡样式:

[secondViewController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentViewController:secondViewController animated:YES completion:nil];

你几乎没有过渡类型:

UIModalTransitionStyleCoverVertical
UIModalTransitionStyleFlipHorizontal
UIModalTransitionStyleCrossDissolve
UIModalTransitionStylePartialCurl

还有什么? :)

答案 2 :(得分:0)

这正是你要找的东西,UIView的静态方法

+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion
  

使用给定参数在指定视图之间创建过渡动画。