--不同的設定*---*三種全然不同的~ ios SDK*_
_{不需要去煩心尋找修改}*第二章..(完)~
*(EN)****Appcorresponds to the original project code **basis when developing different settings*---*
Three completely diffeent ~ ios SDK* (modify ) do not need to worry about looking for !!*Chapter 2)..!!
**(KR)*다른 설정을 개발할 때*** 앱은 원래 프로젝트
코드에 **기준에 해당 *---* 세 가지 완전히 다른 ~
IOS SDK * *__* {수정} ** 찾고에 대해 걱정할
필요가 없습니다 ~*제 2장 !!*완결**
***故事二*以程式碼設計App( 起始畫面 )當不靠storyboard,也不透過xib,完全經由程式碼打造App美麗的起始畫面時,
故事又將如何進行呢? 其實答案很簡單,毫無創意,幾乎和故事二一模一樣。
如下所示,我們看到它的application:didFinishLaunchingWithOptions: ,
跟故事一的就像是同一個模子印出來的
檔案AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc] init];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
唯一的小小差異,存在於以下這一行controller物件的建立。
self.viewController = [[ViewController alloc] init];
在這裡我們單純的建立ViewController物件,不依靠xib,因此沒有呼叫 initWithNibName:bundle:。到時候controller顯示的畫面完全定義--
--在ViewController.m裡。
其實有一個秘密***雖然我們只呼叫init,但是在UIViewController定義---
其實有一個秘密***雖然我們只呼叫init,但是在UIViewController定義---
---的init method裡,其實會另外地再去呼叫initWithNibName:bundle: method,
只不過此時傳入的2個參數都是nil。前面提到當nibBundleOrNil為nil時,
將預設為App的main bundle。其實當nibNameOrNil等於nil時,
也有特別意義。當它是nil時,將假設要找尋的xib檔檔名跟controller同名。
所以如果我們的xib檔跟controller同名,比方在這裡都叫ViewController,
其實是可以傳入nil就好。
因此,最後呼叫makeKeyAndVisible時,一樣會試著去載入ViewController.xib,
因此,最後呼叫makeKeyAndVisible時,一樣會試著去載入ViewController.xib,
只不過因為此時專案裡沒有這個檔案,所以到時候將另外生成什麼都--
--沒有的view元件做為controller的view。
**故事三*(storyboard 設計App起始畫面 :
前三個步驟跟故事一相同,但從步驟4就開始變調了。
4. 建立App主畫面的window (UIWindow物件),並設定AppDelegate物件--
前三個步驟跟故事一相同,但從步驟4就開始變調了。
4. 建立App主畫面的window (UIWindow物件),並設定AppDelegate物件--
--的window property連結到window物件。
5. 載入MainStoryboard.storyboard
從Target App Summary頁面的Main Storyboard欄位我們可以設定App--
5. 載入MainStoryboard.storyboard
從Target App Summary頁面的Main Storyboard欄位我們可以設定App--
啟動後載入的storyboard檔 **
**也可以從Info頁面的Main storyboard file base name欄位設定**
**6. 從storyboard找到負責起始畫面的view controller (由箭頭標記識別)
在Storyboard上可能有多個view controller,
在Storyboard上可能有多個view controller,
負責起始畫面的view controller有以下2個特徵
(1) 有個箭頭指向它
(2) Attribute Inspector頁面的Is Initial View Controller被勾選 *
(1) 有個箭頭指向它
(2) Attribute Inspector頁面的Is Initial View Controller被勾選 *
**7. 建立負責起始畫面的view controller物件**
***在view controller的Identity Inspector頁面裡,
Class欄位決定了view controller的類別 *
****
***因為View Controller的view property連結到storyboard上設計的view,
所以到時候我們看到的App畫面,也就是此controller所管理的頁面,
才會恰恰好等於storyboard上設計的畫面 *
**8. 設定UIWindow物件的rootViewController property為剛剛---
---建立的ViewController物件 **
**9. App完成啟動,呼叫AppDelegate物件的application:
didFinishLaunchingWithOptions: method
檔案AppDelegate.m
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
// Override point for customization after application launch.
return YES:
}
令人覺得不可思議的,當以storyboard設計App起始畫面時,application:didFinishLaunchingWithOptions:裡竟然什麼都不做,
只回傳YES表示App順利完成啟動。其實當初故事一二的application:didFinishLaunchingWithOptions:裡做的事,在故事三也有做,
只是這些事都是早在此method被呼叫前就事先做了。
所以如果我們在此method裡列印self.window, self.viewController時,
將看到物件的記憶體位址,而不會是空的。
10. 呼叫UIWindow物件的makeKeyAndVisible method,顯示window,
進行和前面故事一二一樣的流程。只不過這次生成的view將--
---從storyboard而來,連結到storyboard裡的UIView元件 **
**完~****
**EN**
Story of two * *** in code design App (start page)When not rely storyboard, nor through xib, completely via the App code
to create a beautiful start screen,How will the story be it? The answer is simple, there is no creativity,
and stories of two almost identical.As shown below, we see that it's application: didFinishLaunchingWithOptions:,The story is like with a print out of the same moldFile AppDelegate.m- (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions{
self.window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
/ / Override point for customization after application launch.
self.viewController = [[ViewController alloc] init];
self.window.rootViewController = self.viewController;
[Self.window makeKeyAndVisible];
return YES;} The only small differences exist in the following line controller object creation.self.viewController = [[ViewController alloc] init];Here we simply build ViewController object, do not rely xib, so there is no
self.window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
/ / Override point for customization after application launch.
self.viewController = [[ViewController alloc] init];
self.window.rootViewController = self.viewController;
[Self.window makeKeyAndVisible];
return YES;} The only small differences exist in the following line controller object creation.self.viewController = [[ViewController alloc] init];Here we simply build ViewController object, do not rely xib, so there is no
call initWithNibName: bundle:. To the screen displayed when controller is
fully defined -- In ViewController.m Lane.In fact, there is a secret *** Although we only call init, but defined in
UIViewController ------ The init method, the fact will additionally go to call initWithNibName:
bundle: method,But this time passed two parameters are nil. Mentioned
earlier when nibBundleOrNil is nil, the App will default to the main bundle.
In fact, when nibNameOrNil equal to nil, theAlso has a special significance. When it is nil, it will assume you want to
find the xib file the same name as the file name with the controller.So if we xib file with the controller with the same name, for example,
here called ViewController,In fact, can pass nil like.Therefore, the last call makeKeyAndVisible time, they would try to
load ViewController.xib,Simply because there are no projects at this time this file, so when
the time will additionally generate anything -- No view component as controller of view.*^^!* Story three * (storyboard design App start screen:The first three steps with an identical story, but began tone of step 4.4 Establish App main screen window (UIWindow objects), and set the
AppDelegate object -- The window property linked to the window object.5 Load MainStoryboard.storyboardFrom the Target App Summary page Main Storyboard field we can set App -Starts loading the storyboard file ***
**Also available from the Info page Main storyboard file base name field is set **
**6). From the storyboard found responsible for starting screen view controller
(indicated by the arrow mark recognition)
There may be multiple in Storyboard view controller, responsible for the
There may be multiple in Storyboard view controller, responsible for the
start-up screen view controller has the following two characteristics
(A) there is an arrow pointing to it
(2) Attribute Inspector page Is Initial View Controller is checked **
(A) there is an arrow pointing to it
(2) Attribute Inspector page Is Initial View Controller is checked **
**7). Establish responsible for start-up screen view controller object
In the view controller's Identity Inspector pages, Class field determines
In the view controller's Identity Inspector pages, Class field determines
the view controller class **
****
**Because View Controller's view property linked to the design on the
storyboard view, so when we saw the App screen, which is managed by
the pages of this controller, the design will be just right on the screen is
equal to storyboard **
**8 Set UIWindow object rootViewController property of an object just created ViewController
9. App finish starting, call AppDelegate object's application: didFinishLaunchingWithOptions: method
File AppDelegate.m
- (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions
{
/ / Override point for customization after application launch.
return YES;
}
People feel incredible, when the start screen App storyboard design, application: didFinishLaunchingWithOptions: li actually do nothing, just return YES means
9. App finish starting, call AppDelegate object's application: didFinishLaunchingWithOptions: method
File AppDelegate.m
- (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions
{
/ / Override point for customization after application launch.
return YES;
}
People feel incredible, when the start screen App storyboard design, application: didFinishLaunchingWithOptions: li actually do nothing, just return YES means
App successfully completed startup. In fact, when the story twelve of application: didFinishLaunchingWithOptions: doing things in the story three have to do,
but these things are all back in this method is called before the advance made.
So if we have this method in print self.window, self.viewController,
you will see the object's memory address, and will not be empty.
10). Call UIWindow object makeKeyAndVisible method, display window,
10). Call UIWindow object makeKeyAndVisible method, display window,
the same as for the previous twelve story flow.
But this time generated view comes from the storyboard to link to
storyboard UIView components inside **
**END~*****
**( KR )**
**두 가지의 이야기 **** 코드 디자인 App에서 (시작 페이지)스토리 보드를 의지하지 않는 경우, 또는 XIB를 통해 완전히 아름다운 시작
화면을 만들 수있는 응용 프로그램 코드를 통해,어떻게 이야기가 될 것인가? 대답은 간단하다, 아무 독창성도없고, 거의
동일한 두 개의 이야기.didFinishLaunchingWithOptions : 아래 그림과 같이, 우리는 그것의 응용
프로그램을 참조하십시오,이야기는 동일한 형의 밖으로 프린트처럼파일 AppDelegate.m- (BOOL) 신청 : (UIApplication *) 응용 프로그램 didFinishLaunchingWithOptions :
(있는 NSDictionary *) launchOptions{
self.window = [[UIWindow에 할당] initWithFrame : [[UIScreen mainScreen] 경계];
/ / 응용 프로그램 실행 후 맞춤 점을 재정의합니다.
self.viewController = [[있는 viewController 할당] INIT]
self.window.rootViewController = self.viewController;
[Self.window makeKeyAndVisible]
YES 반환;} 단지 작은 차이는 다음과 같은 라인 컨트롤러 객체 생성에 존재합니다.self.viewController = [[있는 viewController 할당] INIT]여기에서 우리는 단순히있는 viewController 객체를 구축 XIB를 의존하지
self.window = [[UIWindow에 할당] initWithFrame : [[UIScreen mainScreen] 경계];
/ / 응용 프로그램 실행 후 맞춤 점을 재정의합니다.
self.viewController = [[있는 viewController 할당] INIT]
self.window.rootViewController = self.viewController;
[Self.window makeKeyAndVisible]
YES 반환;} 단지 작은 차이는 다음과 같은 라인 컨트롤러 객체 생성에 존재합니다.self.viewController = [[있는 viewController 할당] INIT]여기에서 우리는 단순히있는 viewController 객체를 구축 XIB를 의존하지
않기 때문에 외침 initWithNibName가 없습니다 : 번들 :. - 컨트롤러가 완전히
정의 될 때 표시되는 화면- ViewController.m 레인합니다.우리는 init을 호출하지만 사실, 비밀 ***이 있습니다 만,
UIViewController에 정의 ---번들 : --- init 메소드, 사실은 추가 initWithNibName 전화를 갈 방법은,하지만 이번에는 두 개의 매개 변수가 전무 통과시켰다. 이전 nibBundleOrNil이
전무 할 때 언급응용 프로그램은 기본 번들로 기본 설정됩니다. 사실 때, 전무,
동등한 nibNameOrNil또한 특별한 의미가있다. 이 전무 할 때, 그것은 당신이 XIB 파일에게
컨트롤러와 파일 이름과 동일한 이름을 찾으려면 가정합니다.우리는 같은 이름의 컨트롤러 파일을 XIB 경우에, 예를 들어,
여기에있는 viewController 호출사실, 같은 nil을 전달할 수 있습니다.따라서, 마지막 호출 makeKeyAndVisible 시간,
그들은 ViewController.xib를로드 할 것이다시간이 추가로 아무것도 생성되므로이 시간에는 프로젝트에이
파일이없는 단순히 때문에 -- 뷰의 컨트롤러로 구성 요소를 볼 수 없음.* 스토리 세 * (스토리 보드 디자인 응용 프로그램 시작 화면 :처음 세 개의 동일한 이야기를 같이하지만, 4 단계의 톤을 시작했다.4 앱 메인 화면 창 (UIWindow에 객체)을 수립하고,
AppDelegate 개체를 설정합니다 -- 윈도우 속성은 윈도우 개체에 연결됩니다.5 부하 MainStoryboard.storyboard대상 응용 프로그램 요약 페이지 메인 스토리 분야에서 우리는 응용 프로그램을
설정할 수 있습니다 -스토리 보드 파일의로드를 개시합니다 **
**또한 정보 페이지 메인 스토리 파일 기본 이름 필드에서 사용할
**스토리 보드에서 6 화면보기 컨트롤러 (화살표 표시 인식으로 표시됨) 시작에
대한 책임이 있습니다
스토리 보드보기 컨트롤러에서 여러가있을 수 있습니다 시작 화면보기
스토리 보드보기 컨트롤러에서 여러가있을 수 있습니다 시작 화면보기
컨트롤러에 대한 책임은 다음과 같은 두 가지 특징이 있습니다
(A) 화살표가 여기에 있습니다 가리키는
(2) 속성 관리자 페이지 초기 뷰 컨트롤러가 선택되어인가 **
(A) 화살표가 여기에 있습니다 가리키는
(2) 속성 관리자 페이지 초기 뷰 컨트롤러가 선택되어인가 **
**7 시작 화면보기 컨트롤러 개체에 대한 책임 수립
뷰 컨트롤러의 ID 속성 페이지에서 클래스 필드는 뷰 컨트롤러 클래스를 결정 **
뷰 컨트롤러의 ID 속성 페이지에서 클래스 필드는 뷰 컨트롤러 클래스를 결정 **
****
**보기 컨트롤러의 뷰 속성은 우리가이 컨트롤러 페이지에서 관리되는
응용 프로그램 화면을 볼 때, 그래서 스토리 보드보기에서 디자인에
연결하기 때문에, 디자인은 스토리 보드에 동일한 화면에 바로 될 것입니다 **
**개체의 8 세트는 UIWindow 객체 rootViewController 속성 방금있는
viewController를 생성
. didFinishLaunchingWithOptions : 방법 : 9 앱 마무리 시작 AppDelegate
. didFinishLaunchingWithOptions : 방법 : 9 앱 마무리 시작 AppDelegate
개체의 응용 프로그램을 호출
파일 AppDelegate.m
- (BOOL) 신청 : (UIApplication *) 응용 프로그램 didFinishLaunchingWithOptions :
파일 AppDelegate.m
- (BOOL) 신청 : (UIApplication *) 응용 프로그램 didFinishLaunchingWithOptions :
(있는 NSDictionary *) launchOptions
{
/ / 응용 프로그램 실행 후 맞춤 점을 재정의합니다.
YES 반환;
}
didFinishLaunchingWithOptions : 리튬 실제로 아무것도하지 않는,
YES 반환;
}
didFinishLaunchingWithOptions : 리튬 실제로 아무것도하지 않는,
그냥 YES 반환하면 응용 프로그램이 성공적으로 시작 완료 의미 시작 화면
앱 스토리 보드 디자인, 응용 프로그램을 때 사람들은 믿을 수없는 느낌.
사실, 응용 프로그램의 이야기 열두시 : didFinishLaunchingWithOptions :
미리 만든 전에 이야기를 세 가지의 일을 수행해야하지만, 이런 일들이
방법의 모든 돌아가 호출됩니다. 우리는 인쇄 self.window,
self.viewController이 방법이 경우에, 당신은 개체의 메모리 주소를 참조하고,
비어 있지 않습니다.
10 전화는 UIWindow 객체 makeKeyAndVisible 방법, 디스플레이 창,
10 전화는 UIWindow 객체 makeKeyAndVisible 방법, 디스플레이 창,
이전에 12 층의 흐름과 동일합니다. 이번에 생성 된 뷰는 내부 UIView의
구성 요소를 스토리 보드 링크 스토리에서 온다 ***
**완결~***
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&