-1

一些存在疑問,我一直在研究各種網站上,我有幾個例子,但我有我couldn`t澄清兩個問題:UINavigation控制器和委託

導航控制器:我看到約10導航控制器的例子,但我不能理解它,我看到代表聲明並顯示主屏幕,它也包含在XIB文件中。

然而,這不是我需要的情況下,我已經有我的主屏幕(窗口)加載(在這種情況下我的登錄窗口)

我希望我所說的屏幕從主屏幕包含導航控制器並從那裏開始,用導航控制器移動多個屏幕。但是...因爲我這樣做,如果屏幕包含導航控制器,如果他聲明它已經爲我的登錄忙?並且不希望我的應用程序具有導航控制器,但只有某些特定的屏幕(因爲它們取決於某些選項)。

我必須在不影響屏幕的情況下聲明所有內容嗎? ahhhh我錯過了很多,不明白這個控制(UINavigationController)。是爲了服務,但不是按照我的願望在屏幕上使用它,而不是在整個應用程序中使用它。

什麼是代表?:我用過的很少,並且經常使用它,因爲我看到了對其他示例的引用,通常不會嘗試使用它,因爲不知道如何使用它。

不是,如果我能解釋非技術性的方式,但更容易理解,它是所有代表。 這是什麼?

如何使用?

我知道在哪裏使用它嗎?

我知道什麼時候該使用它。

它使用很少或很多高質量的應用程序。**

很抱歉給您帶來不便,這是因爲它混淆了我,因爲NavigationController和那裏,我留幾個問題,如果我轉交給你是因爲我跑了出去,並有更多的資源來調查和分析例子,但我還不明白。

+0

這ra on了一下,但我懷疑Totumus有正確的想法 - [讀在代表](http://stackoverflow.com/questions/1045803/how-does-a-delegate-work-in-jective -c),其餘的將落到原地。 – Shog9

回答

1

關於navigationController的問題,你應該在appleDocs中閱讀,他們解釋它是最好的方式,並告訴你在使用它們時使用哪些方法。 (ref:http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html

代表只是從一個對象到下一個對象的消息傳遞方式。 這也已經在這個問題之前寫的:How does a delegate work in objective-C?

基本上,代表團允許對象不 他們之間建立強大的相互依存與相互交流的一種方式,因爲這使 設計應用程序的少靈活。代替對象 彼此控制,他們可以有一個委託他們發送(或 委託)消息,代理做他們所做的任何事情,在 爲了響應此消息並採取行動,然後通常返回 東西回來到另一個對象。

委託也是子類化的更好選擇。而不是你 必須創建自己的自定義類來稍微改變 其他對象的行爲,或將它們傳遞給他們的數據,委託允許 對象發送消息給他們的代表爲他們做的工作 沒有創建子類的開銷對 其他對象進行微小更改。

當然,代表團的主要缺點是,現有的委託 方法是依賴於蘋果的工程師預計會有什麼樣的 是有用的,什麼常見的實現,他們希望人們 需求,這就對你能有什麼限制實現。儘管Quinn Taylor指出,這是特定於可可框架 ,因此並不適用於所有情況。

如果委託是子類化的一個選項,那就把它拿來吧,因爲 這是一種更簡潔的方式來管理你的代碼和 對象之間的交互。

它也被寫入蘋果文檔(參考:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html

1

您可以以編程方式添加導航控制器。

SomeRootViewController *rootViewController = [[SomeRootViewController alloc] initWithNibName:@"SomeRootViewControllernibName" bundle:nil]; 
UINavigationController *navCont = [[UINavigationController alloc] initWithRootViewController:rootViewController]; 

之後,您可以顯示導航控制器(navCont.view)的視圖。例如,

currentViewController.view = navCont.view 

至於委託人,正如其含義所暗示的,委託人代表原始類別處理某些操作。例如,如果您可以使用UIApplication委託,則UIApplication將決定是否應用程序退出或不退出到應用程序委託。這些決定可以根據您的要求在運行時間進行。代表使用協議進行編碼。

相關問題