2010-04-04 3 views
0

좋아 모든문제 표시/숨기기 뷰 (의 Obj-C 아이폰 프로그래밍)

그래서 나는과 같이 applicationDidFinishLaunching에 inited는되는 jQuery과 있어요 : [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 (자체 분명히 UITableViewController의 확장), 내가 didSelectRowAtIndexPath:있어, ForumList *ForumList;과 인터페이스에 정의되어 있습니다3210

이 기능의 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은 전무 아니다. 기억해야 할 메시지가 없으면 올바른 메시지로 인식되지만 아무 일도 일어나지 않습니다.

+0

self.globalDelegate가 헤더 파일에 정의되어 있습니다. (전체 내용은 명확하게하기 위해 포함되어 있습니다. 편집 할 수 없으므로 여기에서 편집하십시오.) 그 자체가 .globalDelegate는 디버거에서 0x0 값을 보여줍니다. 제대로 초기화하지 않았다고 가정합니다. 어떻게 할 것이라고 제안합니까? – roswell

+0

방금 ​​클래스 AppDelegate 클래스의 이름이 실제로 mobilebbAppDelegate라는 것을 깨달았습니다 ... 대신 mobilebbAppDelegate * globalDelegate의 인스턴스를 만들어야합니까? 그러나, 그것을하려고하면, 컴파일러는 몇 가지 에러를 던져 버린다. – roswell