UIViewController

本文详细解析了UIViewController的生命周期方法,包括初始化、视图加载、显示及消失等关键阶段,并通过实例展示了这些方法的调用顺序。

UIViewController
@property(nonatomic,retain) UIView *view;
ViewContrlller本身不是一个视图, 想要显示的视图必须要放在这个视图上

初始化方法:
- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;

.h 文件里面引用头文件要用@class避免重复引用, 不要用#import
.m 文件中可以用#import

- (void)viewDidLoad 和
- (void)loadView 

将要显示: - (void)viewWillAppear:(BOOL)animated; 
已经显示: - (void)viewDidAppear:(BOOL)animated;
将要消失: - (void)viewWillDisappear:(BOOL)animated;
已经消失: - (void)viewDidDisappear:(BOOL)animated;


UIController流程:

程序说明:
  • 现有MainViewController和SecondViewController,
  • 重写MainViewController中的 loadView, viewWillAppear:, viewDidAppear:, viewWillDisappear:, viewDidDisappear:
  • 将MainViewController设为Window的RootViewController, 点击MainViewController上的”点击”按钮,会模态进入SecondViewController,
  • 点击SecondViewController上的返回按钮会返回MainViewController
以下为MainViewController中各个方法的执行顺序:

  1. 初始化方法:
    - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    
        NSLog(@"初始化方法:initWithNib");
        if (self) {
        }
        return self;
    }
  2. loadView:方法:
    - (void)loadView{
        [super loadView];
        NSLog(@"%s", __func__);
        NSLog(@"loadView方法");
    }

  3. viewDidLoad:方法:

    - (void)viewDidLoad {
        [super viewDidLoad];
        NSLog(@"viewDidLoad方法");
        UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(50, 50, 100, 30)];
        label1.backgroundColor = [UIColor greenColor];
        [self.view addSubview:label1];
        [label1 release];
        [self createButton]; —> 通过此方法创建一个UIButton, 点击该button会模态进入SecondViewController
    }

  4. viewWillAppear:方法:
    - (void)viewWillAppear:(BOOL)animated{ 
        [super viewWillAppear:animated];
        NSLog(@"%s", __func__);
        NSLog(@"将要显示");
    }

  5. viewDidAppear:方法:
    - (void)viewDidAppear:(BOOL)animated{
        [super viewDidAppear:animated];
        NSLog(@"%s", __func__);
        NSLog(@"已经显示");
    }


    点击按钮进入下一页进入SecondViewController时:
  6. viewWillDisappear:方法:
    - (void)viewWillDisappear:(BOOL)animated{
        [super viewWillDisappear:animated];
        NSLog(@"%s", __func__);
        NSLog(@"将要消失");
    }

  7. viewDidDisappear:方法:
    <span style="font-size:14px;">- (void)viewDidDisappear:(BOOL)animated{
        [super viewDidDisappear:animated];
        NSLog(@"%s", __func__);
        NSLog(@"已经消失");
    }</span>

    点击按钮返回MainViewController时:
  8. viewWillAppear:方法:
    - (void)viewWillAppear:(BOOL)animated{
        [super viewWillAppear:animated];
        NSLog(@"%s", __func__);
        NSLog(@"将要显示");
    }

  9. viewDidAppear:方法:
    - (void)viewDidAppear:(BOOL)animated{
        [super viewDidAppear:animated];
        NSLog(@"%s", __func__);
        NSLog(@"已经显示");}


方法的意义:

将要显示: - (void)viewWillAppear:(BOOL)animated; 
已经显示: - (void)viewDidAppear:(BOOL)animated;
将要消失: - (void)viewWillDisappear:(BOOL)animated;
已经消失: - (void)viewDidDisappear:(BOOL)animated;

计及源荷不确定性的综合能源生产单元运行调度与容量配置优化研究(Matlab代码实现)内容概要:本文围绕“计及源荷不确定性的综合能源生产单元运行调度与容量配置优化”展开研究,利用Matlab代码实现相关模型的构建与仿真。研究重点在于综合能源系统中多能耦合特性以及风、光等可再生能源出力和负荷需求的不确定性,通过鲁棒优化、场景生成(如Copula方法)、两阶段优化等手段,实现对能源生产单元的运行调度与容量配置的协同优化,旨在提高系统经济性、可靠性和可再生能源消纳能力。文中提及多种优化算法(如BFO、CPO、PSO等)在调度与预测中的应用,并强调了模型在实际能源系统规划与运行中的参考价值。; 适合人群:具备一定电力系统、能源系统或优化理论基础的研究生、科研人员及工程技术人员,熟悉Matlab编程和基本优化工具(如Yalmip)。; 使用场景及目标:①用于学习和复现综合能源系统中考虑不确定性的优化调度与容量配置方法;②为含高比例可再生能源的微电网、区域能源系统规划设计提供模型参考和技术支持;③开展学术研究,如撰写论文、课题申报时的技术方案借鉴。; 阅读建议:建议结合文中提到的Matlab代码和网盘资料,先理解基础模型(如功率平衡、设备模型),再逐步深入不确定性建模与优化求解过程,注意区分鲁棒优化、随机优化与分布鲁棒优化的适用场景,并尝试复现关键案例以加深理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值