Xcode下打开新页面的几种方式

这几天用vmware虚拟了个macos10.12系统,用于学习xcode的原生开发。

花了一天多时间安装系统和配置开发环境,主要是下载包都比较大,动辄下载两三个小时。VMware用的版本是12,MacOs镜像是10.12,在此配置下xcode最低要8.0版本,一开始下载的6,在这花了半天时间,总体还算顺利。

虽然objectc的语法比较怪异,还是比较容易学的,基本看个个把小时就能上手。就是如何打开新页面一时把我搞晕了,在android里这非常简单,一个startActivity就搞定了,xcode的打开新页面却有好几种方式。记录一下以免以后忘了:

  1. 打开xib方式,这是早期的xcode打开新页面的方式,跟Android上基本一样,也是最容易理解和使用的方式。每个xib相当于xml布局页面, 跟相应的view controlller挂钩。

  2. 故事板里打开页面方式。把所有的页面,挪到故事板里,可通过简单连线,控制打开新页面。这种方式看似省事了,但是实际开发中,一个app有几十个页面是很常见的,不可想象几十个布局集中到一个故事板里是什么的画面,我个人不太认可这种方式。何况,需要传叁的时候,还是要写一推代码,源控制器里用prepareForSegue方法,目标控制器里要声明相应的属性,不直观。

  3. 多故事板方式。用打开故事板的方式,打开新页面,首页面的控制器要勾选initial。

  4. 打开一个白板viewcontroller,控制器没有和布局挂钩。可用代码写页面。

  5. modal方式和push方式。其实手机里面都是modal方式,跟windows不一样。手机里打开新页面默认是占满屏的,不关闭当前页面,无法手指操作被遮挡的页面。苹果页面基本都是从底部上来的,说明大家都用的modal。如果用Push方式,页面会像安卓一样,从右边出来。push方式需要配置navigationcontroller。

在AppDelegate的application方法里:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  //只有在用push方式导航的时候,这个才有用。默认为modal方式

  UIViewController *view=[[UIStoryboard storyboardWithName:@"Main" bundle:        [NSBundle mainBundle]] instantiateInitialViewController];

  UINavigationController *na=[UINavigationController new];

  [na setNavigationBarHidden:true];

  self.window.rootViewController=[na initWithRootViewController:view];

  return YES;

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容