iOS 三大特性 繼承 多態 以及 封裝ide
下面就是對繼承的更爲深入的認識。動畫
假如你準備重寫NavigationView 那麼就須要讓其自動生成返回鍵 以及其餘功能。atom
如:url
#import <UIKit/UIKit.h> @interface ParentClassController : UIViewController @property(nonatomic,strong)UIView * NavigationView;//頭部導航欄 @property(nonatomic,strong)UIButton * NavigationBack;//返回上級菜單 @property(nonatomic,strong)UILabel * TitleName;//標題 @property(nonatomic,strong)UIButton * Share;//分享 -(void)initVariable;//初始化變量 -(void)initView;//初始化界面 -(void)initData;//初始化數據 -(void)setNavigationItems;//設置導航欄信息
#import "ParentClassController.h" @interface ParentClassController () @end @implementation ParentClassController - (void)viewDidLoad { [super viewDidLoad]; [self initVariable]; [self initData]; [self initView]; [self setNavigationItems]; } #pragma mark--初始化變量 -(void)initVariable{ } #pragma mark--初始化界面 -(void)initView{ /* 跳轉模式:原生4種 1. 默認:UIModalTransitionStyleCoverVertical 上下彈出 2.UIModalTransitionStyleFlipHorizontal 翻轉 3.UIModalTransitionStyleCrossDissolve 淡入 4.UIModalTransitionStylePartialCurl 翻頁動畫 */ } #pragma mark--初始化數據 -(void)initData{ } #pragma mark--設置導航欄信息 -(void)setNavigationItems{ //基類最基礎的返回 主題 以及去購物車 //導航 _NavigationView=[[UIView alloc]initWithFrame:CM(0, 20, VIEW_WIDTH, 44)]; _NavigationView.backgroundColor=UINavigationColor; _NavigationView.layer.borderWidth=0.4; _NavigationView.layer.borderColor=[UIColor grayColor].CGColor; [self.view addSubview:_NavigationView]; //返回 _NavigationBack=[UIButton buttonWithType:UIButtonTypeCustom]; _NavigationBack.tag=1; _NavigationBack.frame=CM(10, 10, 25, 25); UIImage *imgMenu =[[UIImage imageNamed:@"Back"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; [_NavigationBack setImage:imgMenu forState:UIControlStateNormal]; [_NavigationBack setImage:[UIImage imageNamed:@"back-1" ]forState:UIControlStateHighlighted]; [_NavigationBack addTarget:self action:@selector(HomeNavigationButton:) forControlEvents:UIControlEventTouchUpInside]; [self.NavigationView addSubview:_NavigationBack]; //主題 _TitleName=[[UILabel alloc]initWithFrame:CM(VIEW_WIDTH/2-50, 12, 100, 20)]; _TitleName.text=@"海濤展現廳"; _TitleName.textColor=[UIColor whiteColor]; _TitleName.textAlignment = NSTextAlignmentCenter; [self.NavigationView addSubview:_TitleName]; //分享 _Share=[[UIButton alloc]initWithFrame:CM(VIEW_WIDTH-40, 10, 25, 25)]; _Share.tag=2; UIImage * imageShare=[[UIImage imageNamed:@"分享" ]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; [_Share setImage:imageShare forState:UIControlStateNormal]; [_Share setImage:[UIImage imageNamed:@"分享-1"] forState:UIControlStateHighlighted]; [self.NavigationView addSubview:_Share]; [_Share addTarget:self action:@selector(HomeNavigationButton:) forControlEvents:UIControlEventTouchUpInside]; self.view.backgroundColor=[UIColor whiteColor]; } #pragma mark--界面按鈕 -(void)HomeNavigationButton:(UIButton *)sender{ switch (sender.tag) { case 0: { } break; case 1: { // 返回上一級 [self dismissViewControllerAnimated:YES completion:nil]; // 返回首頁[self.navigationController popToRootViewControllerAnimated:YES]; NSLog(@"返回"); } case 2: { NSLog(@"分享"); } default: break; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. }
下面這個類繼承了spa
#import <UIKit/UIKit.h> //注意繼承 @interface SearchViewController : ParentClassController @end
// // Created by 杭州晶泰電子商務有限公司 on 16/3/16. // Copyright © 2016年 杭州晶泰電子商務有限公司. All rights reserved. // #import "SearchViewController.h" @interface SearchViewController () @end @implementation SearchViewController - (void)viewDidLoad { [super viewDidLoad]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; }
這個類就是就是一個全部的Controller的基類
code
只要繼承該類就會自動生成返回鍵以及分享功能orm
注意:在繼承的時候,若是遇到調用兩次方法 那麼可能你在子類中調用了該方法。而且你在繼承
子類中的viewDidLoad中調用了[super viewDidLoad];ip
那麼子類重寫了父類的方法那麼你調用[super viewDidLoad]get
在子類中就不要在調用重寫的方法了,由於[super viewDidLoad]已經調用過了。
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}