2010-01-24 34 views
1

該應用程序是一個基於視圖的項目類型。 我在視圖XIB(UIView Nib)中使用NSObject,假定這個對象是應用程序的頂欄。無法使用NSObject在單獨的ViewController中加載UIView

MainController UIViewController加載初始屏幕。 它看起來像這樣,

UIViewController MainViewController Image

想裝入一個頂視圖(新的,把它叫做X)在上述圖像中的topbarview(紅色)分開設計。

現在,我有NSObject駐留在「X」內,並綁定所有事件並完全控制X,它是一個單例對象。

在NSObject類我有一個方法來返回它自己控制的自我對象實例和uiview(「X」)的一個實例。

的方法是,

-(UIView*)ReturnTopBarView 
{ 
      NSLog(@"called 2"); 
    return topBarObject.topBarView; 
} 

//Provides the top bar instance to all the view controllers. 
//Singleton Implementation. 
+ (id)GetTopBarObject 
{ 
    if(topBarObject == nil) 
    { 
     NSLog(@"called 1"); 
     return [[TopBarObject alloc] init]; 
    } 
    return topBarObject;  
} 

的topbarview是完全設計topbarview(「X」),其具有進來主視圖控制器的topbarview(紅色段圖像中上圖)。

i的主視圖控制器寫了一個方法爲:

-(void)SetHomeScreen 
{ 
    self.topView = [[TopBarObject GetTopBarObject] ReturnTopBarView]; 
} 

我調用-(void)SetHomeScreen在我appdelegate.applicationdidfinishlaunching作爲[viewcontroller SetHomeScreen]

這實際上調用NSObject的相應的方法(TopBarObject類),但我沒有看到在 (mainviewcontroller.topbarview)更新的視圖。這是現在的主要問題。

我有一個自定義頂部酒吧和自定義的底部欄與圖像和圖標。所以我選擇了這種設計方式。 我不知道這是否是最好的方法,我只是尋求一個最優化的系統設計來使這項工作高效。如果您認爲還有其他的方式比這個更好,請與我分享。

回答

0

我看到單身人士是不正確的。 它應該是這樣的:因此GetTopBarObject被稱爲會生成一個新TopBarObject並返回它每次

+ (id)GetTopBarObject { 
    if(topBarObject == nil) { 
     topBarObject = [[TopBarObject alloc] init]; 
    } 
    return topBarObject; 
} 

在你的代碼中topBarObject從未發起並...

+0

viewcontroller.view; ,你是對的。我剛纔注意到了。非常感謝。但是這不能解決問題嗎?如果我錯了,請糾正我。 – Futur 2010-01-25 00:44:37

+0

我認爲它應該解決問題。你寫「return topBarObject.topBarView;」在「ReturnTopBarView」方法中,但topBarObject根本沒有啓動。順便說一句,爲什麼你直接返回「topBarObject.topBarView」而不是「topBarView」? - 這不是一個靜態的方法... – 2010-01-25 02:31:57

+0

亞這是一個問題在我腦海中有一些想法..但你認爲這是一個正確的實施整體..即時提出這個問題後,現在提出你的問題?請問你能否幫我建議適當的結構。 – Futur 2010-01-25 11:11:14

0

凡appdelegate.applicationdidfinishlaunching它被稱爲?
如果你在視圖實際設置之前調用,你所做的只是設置零。
嘗試之前 [viewcontroller SetHomeScreen]

+0

哦好吧..讓我現在試試吧.. – Futur 2010-01-25 12:04:47

+0

是的,控制器現在已經看到了...但是我遵循正確的模式嗎?這種加載應用程序的方式是在應用程序中有一個自定義的頂部和底部欄?請在這裏指導我 – Futur 2010-01-25 13:34:49

相關問題