2010-04-04 20 views
0

沒事,問題顯示/隱藏視圖(對象 - iPhone編程)

所以我有一個在applicationDidFinishLaunching inited像這樣一個UITableView: [self showForumList]; 所述方法做到這一點:

 
-(void)showForumList { 
    ForumList *fl = [ForumList alloc]; 
    [fl initWithNibName:@"ForumList" bundle:[NSBundle mainBundle]]; 
    self.ForumList = fl; 
    [window addSubview:[self.ForumList view]]; 
    [fl release]; 
}
哪裏自我。 ForumList在接口 ForumList *ForumList;先前定義等,現在

,在ForumList(本身UITableViewController明顯延長),我有didSelectRowAtIndexPath: - 在它裏面,我有以下代碼:

 Forum *f = [Forum alloc]; 
    NSArray *forums = [f getForumList]; 

    NSDictionary *selectedForum = [forums objectAtIndex:[indexPath row]]; 

    NSString *Url = [selectedForum objectForKey:@"url"]; 
    NSString *Username = [selectedForum objectForKey:@"username"]; 
    NSString *Password = [selectedForum objectForKey:@"password"]; 

    NSLog(@"Identified press on forum %@ (%@/%@)", Url, Username, Password); 

    [self.globalDelegate showForumListFromForumUsingUrl:Url username:Username password:Password]; 
    [self.globalDelegate closeForumList]; 
    NSLog(@"ForumListFromForum init");

這個函數中的兩個NSLog調用都是按照它們應該執行和執行的。現在,這是問題開始的地方。

self.globalDelegate在我的頭文件的接口規範中定義爲AppDelegate *globalDelegate;。但是,[self.globalDelegate showForumListFromForumUsingUrl:username:password][self.globalDelegate closeForumList]實際上從未實際調用過。它們看起來像這樣:

-(void)closeForumList { 
    NSLog(@"Hiding forum list"); 
    [[self.ForumList view] removeFromSuperview]; 
} 

-(void)showForumListFromForumUsingUrl:(NSString *)Url username:(NSString *)Username password:(NSString *)Password { 
    NSLog(@"Showing forum list from forum"); 
    ForumListFromForum *fl = [ForumListFromForum alloc]; 

    [fl initWithNibName:@"ForumListFromForum" bundle:[NSBundle mainBundle]]; 
    [fl initFromForumWithUrl:Url username:Username password:Password]; 

    self.ForumListFromForum = fl; 
    [window addSubview:[self.ForumListFromForum view]]; 
    [fl release]; 
}

的應用程序響應我的新聞,但這些都不NSLog的調用由,可能是因爲在對的appDelegate調用該方法不起作用。

任何想法,我哪裏出錯了?

回答

1

我沒有看到一行,其中self.globalDelegate被分配了&初始化。也許,這是原因。

此外,檢查(在調試器),在這些行:

[self.globalDelegate showForumListFromForumUsingUrl:Url username:Username password:Password]; 
[self.globalDelegate closeForumList]; 

self.globalDelegate不是nil。正如你應該記住的 - 消息傳遞到零被認爲是正確的,但沒有任何反應。

+0

self.globalDelegate在頭文件中被定義爲這樣(爲了清楚起見,整體被包含)(編輯,因爲我不能在這裏使用pre,請參閱http://pastebin.com/h6DKyHZJ) 這就是說,自我.globalDelegate在調試器中顯示值0x0 - 我想我沒有正確初始化它,你會如何建議我做? – roswell 2010-04-05 03:19:31

+0

我剛剛意識到,我的類AppDelegate類實際上被命名爲mobilebbAppDelegate ...也許我應該創建一個mobilebbAppDelegate * globalDelegate實例呢?然而,試圖這樣做會導致編譯器拋出一些錯誤...... – roswell 2010-04-05 03:27:06