我目前正在开发一款应用,我想知道是否有办法以编程方式在视图之间切换?我在YouTube上查看了很多关于youtube和论坛的视频,但每当人们声称他们正在以编程方式进行操作时,他们仍然使用故事板来进行一些视图切换。有没有办法在不使用故事板的情况下切换视图(仅使用纯代码)?我真的不喜欢使用界面构建器,并且只想以编程方式在视图之间切换。
如果您熟悉Android开发,我想知道是否有类似于iOS开发的Intent类。
答案 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
使用给定参数在指定视图之间创建过渡动画。