初学者 iOS设置页面标题

436 阅读1分钟

使用 self.title = @"标题"的原理是调用了视图控制器的@property(nullable, nonatomic,copy) NSString *title; 的方法来改变标题;

也就是使用 self.title = @"标题" == [self setTitle:@"首页"] 这个方法就是继承了视图控制器的方法

  1. 普通使用

    - (void)viewDidLoad {   [super viewDidLoad];  self.title = @"标题" }
    
  2. 定义样式

    UILabel *titleNav = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 30)];
    titleNav.text = @"标题";
    titleNav.textAlignment = NSTextAlignmentCenter;
    titleNav.backgroundColor = [UIColor orangeColor];
    titleNav.textColor = [UIColor whiteColor];
    self.navigationItem.titleView = titleNav;
    
  3. 定义一个父类来覆盖视图控制器的方法 ,作用于公共的类

    //方法
    -(void)setTitle:(NSString *)title{
      UILabel *titleNav = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 30)];
      titleNav.text =title;     
      titleNav.textAlignment = NSTextAlignmentCenter;      
      titleNav.backgroundColor = [UIColor orangeColor];    
      titleNav.textColor = [UIColor whiteColor];     
      self.navigationItem.titleView = titleNav;
    }
    //子页面调用 
    
    1\. 在.h文件
    
    #import “公共类名” 
    #import "baseController.h"
    NS_ASSUME_NONNULL_BEGIN
    @interface “当前类名” : “公共类名”
    @end
    NS_ASSUME_NONNULL_END
    
    2\. 在.m文件调用 self.title = @"标题"  会自动继承父类的方法