iOS UIViewController 수명 주기

2770 단어
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    
    MainViewController *viewController = [[MainViewController alloc] init];
    self.window.rootViewController = viewController;
    [viewController release];
    
    return YES;
}

MainViewController는 부모 클래스가 UIViewController인 뷰 컨트롤러입니다.

1. [[MainViewController alloc] init]; 메모리 조각을 생성한 다음 init로 초기화합니다.
초기화는 MainViewController 클래스를 호출하는 것입니다.


- (id)init
{
    self = [super init];
    if (self){
        
    }
    return self;
}
자신에게 실행
= [슈퍼

초기화
]; 메소드를 입력하면 이 기능이 실행됩니다.


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
이 메서드가 실행된 후 -(id)init 메서드로 돌아가서 if(self) 문을 계속 실행한 다음 초기화를 완료합니다.



2.self.window.rootViewController = viewController, 보기 컨트롤러를 창의 rootViewController에 할당합니다.
= 맞아, 전화할게

- (void)loadView
{ 
    UIView *view = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
    view.backgroundColor = [UIColor blueColor];
    self.view = view;
}
viewController의 뷰가 nil이기 때문에 이 메소드를 호출하고 내부의 내용을 직접 추가합니다.
[
감독자
로드뷰
] 또는 단순히 이 메서드를 재정의하지 마십시오.


그런 다음 자동으로 생성된 컴파일러를 호출합니다.

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view.
}
그럼 있다


- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
}
그리고


-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}



3.[viewController 릴리스], 참조 횟수 -1,
뷰 컨트롤러가 로드됩니다.

간단히
1. alloc 객체 생성, 공간 할당 2, 객체 초기화(initWithNibName) 초기화, 데이터 초기화 3, loadView 펜촉에서 뷰 로드, 일반적으로 이 단계는 간섭할 필요가 없습니다. xib 파일을 사용하여 view4를 생성하지 않는 한 viewDidLoad가 로드되며 데이터를 사용자 정의하고 다른 컨트롤을 동적으로 생성할 수 있습니다. 화면에 렌더링됨
참조 횟수가 0일 때 코드 순서는 다음과 같습니다.
1. viewWillDisappear 보기가 화면에서 제거되기 전에 실행됩니다. 2. viewDidDisappear 보기가 화면에서 제거되었으며 사용자는 보기를 볼 수 없습니다. 3. dealloc 보기가 파괴됩니다. 여기서 init 및 릴리스할 viewDidLoad 객체

좋은 웹페이지 즐겨찾기