2010-04-04 49 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