成都创新互联网站制作重庆分公司

ios开发导航控制器,ios 控制器

iOS开发 导航栏出现多次push同一个页面问题解决办法

在点击push下一个页面时,因为各种原因,点一下cell或按钮没有响应,用户可能就多点几下,这时候会打开好几个一样的页面。

创新互联主要从事成都网站设计、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务苏仙,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

这是因为push后的页面有耗时操作或者刚好push到另一个页面时,另一个页面正好在reloadData卡住主线程。造成点击cell时卡住了。

这时,我们可以通过重写导航控制器的方法来解决这个问题。

#import UIKit/UIKit.h

@interfaceNaviViewController : UINavigationController

@end

#import "NaviViewController.h"

@interfaceNaviViewController ()

// 记录push标志

@property(nonatomic,getter=isPushing)BOOLpushing;

@end

@implementationNaviViewController

- (void)viewDidLoad {

      [superviewDidLoad];

       self.delegate=self;

}

- (void)pushViewController:(UIViewController*)viewControlleranimated:(BOOL)animated {

    if(self.pushing==YES) {

             NSLog(@"被拦截");

             return;

    }else{

             NSLog(@"push");

             self.pushing=YES;

    }

[superpushViewController:viewControlleranimated:animated];

}

#pragma mark - UINavigationControllerDelegate

-(void)navigationController:(UINavigationController*)navigationControllerdidShowViewController:(UIViewController*)viewControlleranimated:(BOOL)animated {

         self.pushing=NO;

}

@end

ios开发,添加导航控制器,只能给根视图控制器添加吗?

肯定不是的,你可以按自己的需求在指定的视图添加导航控制器。这就好比你在需要存储多个对象的时候建立数组来存储一样,导航控制器只是用来管理它存储的各个页面

ios开发怎么用自定义的导航控制器

//首先取出设置主题的对象

UINavigationBar *navBar = [UINavigationBar appearance];

//注意这是设置导航栏背景的颜色,即导航栏所覆盖的底层的颜色。而不是导航栏本身的颜色。

[navBar setBackgroundColor:[UIColor greenColor]];

//这才是设置导航栏本身的颜色

[navBar setBarTintColor:[UIColor orangeColor]];

//如果要对导航栏设置背景图片

[navBar setBackgroundImage:[UIImage imageNamed:@"NavBar64"] forBarMetrics:UIBarMetricsDefault];

iOS 获取当前导航控制器,进行页面跳转

方法一:根视图必须是 UITabBarController

方法二:发生过模态跳转

注:这个两个方法建议写成全局方法,方便使用

期待你的评论建议O(∩_∩)O~


标题名称:ios开发导航控制器,ios 控制器
本文来源:http://cxhlcq.com/article/phpodp.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部