IOS-页面跳转(基于 UINavigationController)
程序员文章站
2022-03-27 21:45:57
IOS UINavigationController 的使用前言如何使用 UINavigationController 进行页面跳转结语前言对于稍微复杂一点的 UI,页面跳转都是无法避免的。如何使用 UINavigationController 进行页面跳转都说 UINavigationController 就是一个栈结构,页面跳转实际就是出栈和入栈的操作,确实如此。下面是完整的使用过程:首先,我们需要在 AppDelegate 定义一个 UINavigationController 对象:...
IOS UINavigationController 的使用
前言
对于稍微复杂一点的 UI,页面跳转都是无法避免的。
如何使用 UINavigationController 进行页面跳转
都说 UINavigationController 就是一个栈结构,页面跳转实际就是出栈和入栈的操作,确实如此。
下面是完整的使用过程:
- 首先,我们需要在 AppDelegate 定义一个 UINavigationController 对象:
@interface AppDelegate (){
UINavigationController *navC;
// 这里的 myViewController 是自定义的控制器,继承于 UIViewController
myViewController *myVC;
}
@end
- 注:花括号中定义私有变量。
- 实例化、添加根视图控制器
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// 首先实例化 myVC
myVC = [[myViewController alloc] init];
// 实例化 UINavigationController,同时将 myVC 配置为根视图控制器
navC = [[UINavigationController alloc] initWithRootViewController:myVC];
// 向窗口添加根控制器
[self.window setRootViewController:navC];
// 将窗口背景色改为白色
self.window.backgroundColor = [UIColor whiteColor];
// 套话
[self.window makeKeyAndVisible];
return YES;
}
- 在 AppDelegate.m 的 didFinishLaunchingWithOptions 函数中配置我们的 UINavigationController。
- UINavigationController 本身是没有视图的,我们在实例化时,需要添加一个根视图控制器(如:UIViewController),这时栈中就有了一个元素,并且默认首先显示这个元素。
- 最后,通过添加新的视图控制器实现页面跳转。注意,本文中,这个页面跳转的操作是在根视图控制器下进行的。
// 实例化跳转页面的视图控制器,anotherViewController 亦为继承于 UIViewController 的自定义控制器
anotherViewController *anoVC = [[anotherViewController alloc] init];
// 使用 pushViewController 添加视图控制器
[self.navigationController pushViewController:anoVC animated:YES];
- pushViewController 后加上
animated:YES
意为 “立即执行”。 - 代码执行后,会进行页面跳转,转到新加入的视图控制器的页面。
- 系统自动生成返回的按钮(默认左上角),不用我们操心。
- 有一个需要注意的地方就是跳转后的页面必须配置背景色,否则跳转过程中会出现惨不忍睹的重叠视象。
// 加上背景色就不会有重叠的感觉了哦
self.view.layer.backgroundColor = [UIColor whiteColor].CGColor;
- 在跳转后页面的视图控制器的 init 函数中,加上这条语句就好了。
- CGColor 是一个很常用的东西,可以将 UIColor 转为 CGColor。基本上背景色,元素的颜色等都必须使用 CGColor,具体什么要转,看 XCode 是否报错就行了。
结语
记录一下 UINavigationController 简单的使用流程以及一些坑。
仅供参考,敬请指正。
本文地址:https://blog.csdn.net/weixin_43536737/article/details/109611585
下一篇: Excel转datatable
推荐阅读
-
基于vue循环列表时点击跳转页面的方法
-
基于vue循环列表时点击跳转页面的方法
-
IE 报错 -- ‘SyntaxError:strict 模式下不允许一个属性有多个定义‘ ,基于vue element-ui页面跳转坑的解决
-
基于JS实现操作成功之后自动跳转页面
-
基于vue开发微信小程序mpvue-docs跳转页面功能
-
在研究基于wordpress的网站源码,始终不懂这种页面跳转是咋一回事?解决思路
-
IOS-页面跳转(基于 UINavigationController)
-
在研究基于wordpress的网站源码,始终不懂这种页面跳转是咋一回事?解决思路
-
基于meta实现页面的定时刷新或跳转
-
基于JavaScript实现定时跳转到指定页面_javascript技巧