BBAUIViewController.h 3.87 KB
//
//  BBAUIViewController.h
//  BaiduBoxApp
//
//  Created by wang cong on 12-9-16.
//  Copyright (c) 2012年 Baidu. All rights reserved.
//

/******************************************************************************/
// 描述:视图控制器基类,提供一些共有基本属性与设置,本SDK中所有视图控制器类均基于此类
// 场景:生成视图控制器
// 用法:与系统UIViewController用法一致
/******************************************************************************/

// 头文件
#import <UIKit/UIKit.h>
//#import "BBANavigationBar.h"

// @class - BBAUIViewController
// @brief - 项目中类继承关系最根层次的UIViewController,项目中其他的UIViewController都应该从此类继承
__attribute__ ((deprecated("该类已被废弃,请勿再使用")))
@interface BBAUIViewController : UIViewController

// 初始化,指定首选的状态条样式(默认是UIStatusBarStyleDefault)
// 只有使用这种方式初始化的VC,才会在appear和disappear时改变和恢复statusBar样式
- (instancetype)initWithPreferedStatusBarStyle:(UIStatusBarStyle)statusBarStyle;
// 指定构造器方法,在提供设置nib相关的情况下, 沿用上述方式.
- (instancetype)initWithNibName:(NSString *)nibNameOrNil
						 bundle:(NSBundle *)nibBundleOrNil
		 preferedStatusBarStyle:(UIStatusBarStyle)statusBarStyle;
// viewController原来默认方法,状态栏为default
- (instancetype)initWithNibName:(NSString *)nibNameOrNil
						 bundle:(NSBundle *)nibBundleOrNil;
// 设置本页所需导航栏状态(如上方), 此方法可在子类初始化方法中调用, 以达到其目的. 因部分子类初始化已不再调用父类的初始化方法.
- (void)setPreferedStatusBarStyle:(UIStatusBarStyle)statusBarStyle;

// 设置导航栏的统一接口方法
- (void)showNavigationBarDefaulStyleWithTitle:(NSString *)aTitle
									 animated:(BOOL)animated;    //设置标题, 显示导航栏, 样式为指定默认值(可一处同意更改)
- (void)showNavigationBarDefaulStyleWithTitle:(NSString *)aTitle
								titleFontSize:(CGFloat)fontSize
									 animated:(BOOL)animated; // 设置标题, 显示导航栏, 标题字号可设定, 其他为默认值.

- (void)setNavigationBarForgroundLightColor:(UIColor *)pressedColor;
// 设置导航栏前景色为浅色,用户垂直平台导航栏为彩色的情况。

// recover notification methods
- (void)registeRecoverNotification;
- (void)unregisterRecoverNotification;
- (void)onRecoverNotificationReceived:(NSNotification *)notification;

// modal vc attribute
@property (nonatomic, readonly) id presentedOrModaledVC;

// modal vc methods
- (BOOL)hasModalVC;
- (void)presentModalVC:(UIViewController*)modalVC
			  animated:(BOOL)animated
			completion:(void (^)(void))completion;
- (void)dismissModalVCAnimated:(BOOL)animated
					completion:(void (^)(void))completion;

// alert view methods
- (void)showAlertView:(UIAlertView*)alertView;
- (void)dismissAlertView;

// action sheet methods
- (void)showActionSheet:(UIActionSheet*)actionSheet;
- (void)dismissActionSheet:(BOOL)animated;

// block methods
- (void)performBlockOnNextRunLoop:(void (^)(void))block;
- (void)performBlockAfter:(NSTimeInterval)delay
					block:(void (^)(void))block;

// screenshot
- (UIImage*)screenShot;

- (void)performBlockOnSerialQueue:(void(^)(void))block;
- (void)performNavigationBlock:(void(^)(void))block;

+ (UINavigationController *)navigationControllerOfViewController:(UIViewController *)viewController;

/**
 * 如果是push 出的contoller 判断上一个controller支持不支持横屏
 */
-(BOOL)lastControllerSupportLandscapeMode;

//第三方键盘是否激活(由于转屏时交互会有重大bug,因此转屏期间禁止交互;此时会导致激活的第三方键盘不可用,因此如果有键盘激活禁止转屏)
@property (nonatomic, assign, getter=isKeyboardActivate)BOOL keyboardActivate;

@end // BBAUIViewController