該應用程序是一個基於視圖的項目類型。 我在視圖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)更新的視圖。這是現在的主要問題。
我有一個自定義頂部酒吧和自定義的底部欄與圖像和圖標。所以我選擇了這種設計方式。 我不知道這是否是最好的方法,我只是尋求一個最優化的系統設計來使這項工作高效。如果您認爲還有其他的方式比這個更好,請與我分享。
雅
viewcontroller.view;
,你是對的。我剛纔注意到了。非常感謝。但是這不能解決問題嗎?如果我錯了,請糾正我。 – Futur 2010-01-25 00:44:37我認爲它應該解決問題。你寫「return topBarObject.topBarView;」在「ReturnTopBarView」方法中,但topBarObject根本沒有啓動。順便說一句,爲什麼你直接返回「topBarObject.topBarView」而不是「topBarView」? - 這不是一個靜態的方法... – 2010-01-25 02:31:57
亞這是一個問題在我腦海中有一些想法..但你認爲這是一個正確的實施整體..即時提出這個問題後,現在提出你的問題?請問你能否幫我建議適當的結構。 – Futur 2010-01-25 11:11:14