开发SDK保存和恢复宿主APP导航栏状态

在开发iOS的SDK中,会遇到从宿主app跳转至SDK的情景。在SDK的开发中,开发者是按照自已的需求进行开发的,所以很容易出现对导航栏样式的改变。

而宿主app采用栈式导航将SDK压入到导航栈中,所有在栈中的视图控制器公用一个导航控制器,如果SDK在入栈时将导航栏视图控制器的外观改变,那么当出栈时如果没有恢复导航控制器的外观,那么宿主app的导航视图控制器的外观就会被改变,这是SDK开发者不想看到的,因为SDK本身的设计思想就是模块化开发,高度解耦。当宿主app调用SDK后,SDK调用完毕时改变了宿主app并不想改变的东西,就会造成耦合。

所以,需要SDK在调用完毕时恢复宿主app的导航视图控制器状态。看下面的一个例子:

//
//  SettingBaseVC.m
//  LanYunNews
//
//  Created by whf on 17/3/25.
//  Copyright © 2017年 apple. All rights reserved.
//

#import "SettingBaseVC.h"

@interface SettingBaseVC ()

@end

@implementation SettingBaseVC

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    [self setNavi];
}

- (void)dealloc {
    NSLog(@"%@---free",NSStringFromClass([self class]));
}

@end

你可能感兴趣的:(开发SDK保存和恢复宿主APP导航栏状态)