【ios】navigationController使用和页面跳转后数据刷新


前言

本博文主要是对ios中navigationController使用和页面跳转后数据刷新需求实现的一个介绍,以及记录,方便后续使用时候可以直接加载,这边ios开发主要使用语言Objective-C。

navigationController介绍

iOS中的navigationController是UIKit框架中提供的一个容器视图控制器,用于实现导航堆栈的管理和界面之间的转场。

navigationController是一个栈结构,每个视图控制器在navigationController中都有自己的位置。当我们将一个视图控制器推入navigationController时,该视图控制器将被放置在栈的顶部,成为当前活动视图控制器。当我们从navigationController中弹出一个视图控制器时,栈将重新调整,前一个视图控制器将成为当前活动视图控制器。

navigationController可以通过以下几种方式实现界面之间的导航:

  1. Push:通过push方法将一个新的视图控制器推入导航堆栈中,并在导航栏上显示一个返回按钮。用户可以点击返回按钮返回上一个视图控制器。

  2. Pop:通过pop方法将当前的视图控制器从导航堆栈中弹出,返回上一个视图控制器。

  3. PopToRoot:通过popToRootViewControllerAnimated方法将导航堆栈中的所有视图控制器都弹出,返回导航堆栈的根视图控制器。

  4. Present:通过presentViewController:animated:completion方法以模态的方式展示一个新的视图控制器。

  5. Dismiss:通过dismissViewControllerAnimated:completion方法将当前的视图控制器从presented view controller中解除。

navigationController的导航栏可以显示标题、返回按钮、右侧按钮等,可以通过设置navigationItem属性来自定义导航栏的内容。

navigationController还可以通过设置代理来监听导航栏的状态变化,例如当视图控制器推入或弹出导航栏时执行一些逻辑。

总之,navigationController是iOS中实现界面导航的一种常用容器视图控制器,它提供了方便的方法来管理视图控制器的堆栈和实现界面之间的转场。

使用实例

实现页面的关闭

1.通过

[self.navigationController dismissViewControllerAnimated:YES completion:nil];

实现页面的关闭

实现页面的跳转

2.通过

DealShowTableViewController *dealshow = [[DealShowTableViewController alloc] init];
            UINavigationController* navigationController = [[UINavigationController alloc] initWithRootViewController:dealshow];
            [self presentViewController:navigationController animated:TRUE completion:nil];

实现页面的跳转

页面跳转后数据刷新转

3.当页面从a跳转到b,在关闭b后回到a时,不会进入a的viewDidLoad,该函数只进入一次。可以通过重写viewWillAppear实现跳转后页面数据的更新

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    //调用函数
    //函数需要写  [self.myDealTableView reloadData];
    [self getInformation];
    
}

额外补充

需求实现部分就先到这!接下来,是一些个人平时整理的c++要点概要,如有需要可以进行阅读

结构体

  • 第一种是最基本的结构体定义, 其定义了一个结构体 A。
struct A  { int a;};
  • 第二种则是在定义了一个结构体 B 的同时定义了一个结构体 B 的变量 m。
struct B  { int b;}m;
  • 第三种结构体定义没有给出该结构体的名称, 但是定义了一个该结构体的变量 n, 也就是说,若是想要在别处定义该结构体的变量是不行的, 只有变量 n 这种在定义结构体的同时定义变量才行。
struct  { int c;}n;
  • 第四种结构体定义在第一种结构定义的基础上加了关键字typedef, 此时我们将struct D{int d}看成是一个数据类型, 但是因为并没有给出别名, 直接用 D 定义变量是不行的。 如 D test; ,不能直接这样定义变量 test。 但 struct D test; 可行。
typedef struct D  { int d;};
  • 第五种结构体定义在第四种结构体定义的基础上加上了别名 x, 此时像在第四种结构体定义中说得那样, 此时的结构体 E 有别名 x, 故可以用 x 定义 E 的结构体变量。 用 E 不能直接定义, 需要在前面加 struct,struct E test;
typedef struct E  { int e;}x;
  • 第六种结构体定义在第五种的基础上减去了结构体名, 但是若是直接使用 y 来定义该结构体类型的变量也是可以的。 如 y test;(常用)
typedef struct  { int f;}y;

使用内联函数的时候要注意:

在这里插入图片描述

函数重载

  • C++函数重载的判断依据
  1. 函数形参的个数;
  2. 函数形参的类型;
  3. 形参的顺序;
  4. 不能把返回值作为函数重载的条件, 原因是编译器在编译时不会去判断函数的返回类型,函数只有调用后, 编译器才会去验证返回类型, 所以返回值不能作为函数重载的依据;
  5. 常函数 const 可以作为函数重载判断依据, 原因: 重载[]运算符时, 有没有 const 的区别是: 有 const 只读, 没有 const 读写都可以。
  • 注意事项:
  1. 形参的个数或类型至少要有一项是不同的;
  2. 编译器不以返回值来区分函数。

虚函数和纯虚函数

纯虚函数是指在 C++中, 函数可以用“virtual”和“= 0”关键字来声明。 该函数是一个虚函数,但是在声明时, 没有定义它的函数体。 它是一个空函数, 只提供函数声明, 而不提供实际实现。 由于它编译器不能确定如何实现, 因此需要在子类中实现它。 因此, 纯虚函数也被称为抽象函数。 形如:

class <类名>
{ 
virtual <类型><函数名>(<参数表>)=0;}; 

虚函数和纯虚函数的特性:

  1. 虚函数可以在类中声明, 也可以在类的外部声明, 编译器会自动将它们转换为虚函数;但是纯虚函数只能在类中声明, 而不能在类的外部声明。
  2. 虚函数可以有实现, 也可以没有实现; 而纯虚函数没有实现, 不可以有实现。
  3. 虚函数可以在子类中覆盖, 也可以不被覆盖; 而纯虚函数必须在子类中覆盖, 否则编译器将报错。
  4. 虚函数可以被多态调用, 也可以被静态调用; 而纯虚函数只可以被多态调用, 不可以被静态调用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
下面是 iOS Navigation Controller 中常用的一些方法的详解: 1. pushViewController:animated: 方法:将一个新的视图控制器推入导航栈中,并在导航条上显示一个新的视图控制器的标题和返回按钮。可以通过 animated 参数来控制是否显示动画效果。 2. popViewControllerAnimated: 方法:从导航栈中弹出当前的视图控制器,并返回上一个视图控制器。可以通过 animated 参数来控制是否显示动画效果。 3. popToViewController:animated: 方法:从导航栈中弹出所有在指定视图控制器之上的视图控制器,并返回到指定的视图控制器。可以通过 animated 参数来控制是否显示动画效果。 4. popToRootViewControllerAnimated: 方法:从导航栈中弹出所有的视图控制器,并返回到根视图控制器。可以通过 animated 参数来控制是否显示动画效果。 5. setViewControllers:animated: 方法:设置导航栈中的所有视图控制器,并可以通过 animated 参数来控制是否显示动画效果。 6. topViewController 属性:获取当前导航栈中的顶部视图控制器。 7. visibleViewController 属性:获取当前导航栈中可见的视图控制器。 8. navigationBar 属性:获取导航条对象,可以通过该对象修改导航条的样式或添加自定义视图。 以上是 iOS Navigation Controller 中常用的一些方法和属性的详解,掌握这些方法可以更好地实现导航控制器的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻傻虎虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值