美文网首页
基本控件

基本控件

作者: 周伊宇 | 来源:发表于2020-05-20 11:21 被阅读0次

    隐藏和显示导航

    第一种做法
    注意这里一定要用动画的方式隐藏导航栏,这样在使用滑动返回手势的时候效果最好,和上面动图一致.这样做有一个缺点就是在切换tabBar的时候有一个导航栏向上消失的动画.

    - (void)viewWillAppear:(BOOL)animated {   
      [superviewWillAppear:animated];    
      [self.navigationController setNavigationBarHidden:YESanimated:YES];
    }
    
    - (void)viewWillDisappear:(BOOL)animated {   
      [superviewWillDisappear:animated];    
      [self.navigationController setNavigationBarHidden:NOanimated:YES];
    }
    

    第二种做法
    设置self为导航控制器的代理,实现代理方法,在将要显示控制器中设置导航栏隐藏和显示,使用这种方式不仅完美切合滑动返回手势,同时也解决了切换tabBar的时候,导航栏动态隐藏的问题.

    @interfaceWLHomePageController()
    @end
    @implementationWLHomePageController#pragma
    mark - lifeCycle
    - (void)viewDidLoad {   
      [superviewDidLoad];
      // 设置导航控制器的代理为
      selfself.navigationController.delegate=self;
    }
    #pragma mark - UINavigationControllerDelegate
    // 将要显示控制器
    - (void)navigationController:(UINavigationController*)navigationController willShowViewController:(UIViewController*)viewController animated:(BOOL)animated {
      // 判断要显示的控制器是否是自己
      BOOLisShowHomePage = [viewController isKindOfClass:[selfclass]];    
      [self.navigationController setNavigationBarHidden:isShowHomePage animated:YES];
    }
    

    //提示框


    image
    // 初始化对话框
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"用户名或密码错误,请检查后重新登录!" preferredStyle:UIAlertControllerStyleAlert];
    [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
                        [self.navigationController popViewControllerAnimated:YES];
                    }]];
    // 弹出对话框
    [self presentViewController:alert animated:true completion:nil];
    
    image
    // 初始化对话框
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"确认注销吗?" preferredStyle:UIAlertControllerStyleAlert];
    // 确定注销
    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *_Nonnull action) {
                        // 1.清除用户名、密码的存储
                        // 2.跳转到登录界面
                        [self performSegueWithIdentifier:@"Logout" sender:nil];
                    }];
    UIAlertAction *cancelAction =[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
    [alert addAction:okAction];
    [alert addAction:cancelAction];
     // 弹出对话框
    [self presentViewController:alert animated:true completion:nil];
    
    image
     //提示框添加文本输入框
    UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Title" message:@"This is an alert." preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction* okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
                                                         handler:^(UIAlertAction * action) {
                                                             //响应事件
                                                             //得到文本信息
                                                             for(UITextField *text in alert.textFields){
                                                                 NSLog(@"text = %@", text.text);
                                                             }
                                                         }];
    UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel
                                                             handler:^(UIAlertAction * action) {
                                                                 //响应事件
                                                                 NSLog(@"action = %@", alert.textFields);
                                                             }];
    [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
            textField.placeholder = @"登录";
    }];
    [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
       textField.placeholder = @"密码";
       textField.secureTextEntry = YES;
    }];
    [alert addAction:okAction];
    [alert addAction:cancelAction];
    [self presentViewController:alert animated:YES completion:nil];
    
    image
    //显示弹出框列表选择  
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Title" message:@"This is an Sheet." preferredStyle:UIAlertControllerStyleActionSheet];  
    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel  
     handler:^(UIAlertAction * action) {  
    //响应事件  
    NSLog(@"action = %@", action);  
    }];  
    UIAlertAction* deleteAction = [UIAlertAction actionWithTitle:@"删除" style:UIAlertActionStyleDestructive  
     handler:^(UIAlertAction * action) {  
    //响应事件  
    NSLog(@"action = %@", action);  
    }];  
    UIAlertAction* saveAction = [UIAlertAction actionWithTitle:@"保存" style:UIAlertActionStyleDefault  
     handler:^(UIAlertAction * action) {  
    //响应事件  
    NSLog(@"action = %@", action);  
    }];  
    [alert addAction:saveAction];  
    [alert addAction:cancelAction];  
    [alert addAction:deleteAction];  
    [self presentViewController:alert animated:YES completion:nil];  
    
    //报警告
    //Initializing 'AppDelegate *__strong' with an expression of incompatible type 'id _Nullable'
    AppDelegate *app = (AppDelegate *)[UIApplication sharedApplication].delegate;
    app.window.rootViewController = app.drawerController;
    
    //xib设置圆角需要到的Key Path:
    layer.cornerRadius ,注意该 key 对应 Value 的 type 应该设置为 String
    layer.masksToBounds ,注意该 key 对应 Value 的 type 应该设置为 Boolean , 当右侧出现对号时为YES
    
    //这个方法允许你在显示app给用户之前执行最后的初始化操作
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    if (@available(iOS 11.0, *)){//避免滚动视图顶部出现20的空白以及push或者pop的时候页面有一个上移或者下移的异常动画的问题
            [[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
        }
        return YES;
    }
    

    相关文章

      网友评论

          本文标题:基本控件

          本文链接:https://www.haomeiwen.com/subject/spygohtx.html