2011-02-17 54 views
1

任何人都知道爲什麼,如果我推/流行localSearchViewController,我得到一個EXC_BAD_ACCESS錯誤,如5推/彈出PUSH/POP - 視圖 - 控制器EXC_BAD_ACCESS

if (localSearchViewController == nil) 
    localSearchViewController = [[LocalSearchViewController alloc] init]; 

    CBAAppAppDelegate *app = (CBAAppAppDelegate *) [[UIApplication sharedApplication] delegate]; 

    [app.navBarController.navigationBar setHidden:YES]; 

    [app.navBarController pushViewController: localSearchViewController 
            animated:YES]; 

回答

0

我不知道這是因爲如果你的崩潰,但除非你已經覆蓋您的視圖控制器的init方法,你應該使用,而不是其指定的初始化器:

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle

而且如果你在你的實現文件中定義了這個方法,確保你也調用了super。

如果這樣不能解決您的問題,您可以通過在localSearchViewController中設置斷點並在localSearchViewController中設置斷點來嘗試找到代碼崩潰的確切位置。這很可能是代碼中某處的釋放問題。

[編輯添加]

這裏就是您用於初始化視圖控制器看起來應該像代碼:

localSearchViewController = [[LocalSearchViewController alloc] initWithNibName:@"YourNibName" bundle:nil];

-1

括在大括號後。

if (localSearchViewController == nil) { 
    localSearchViewController = [[LocalSearchViewController alloc] init]; 

    CBAAppAppDelegate *app = (CBAAppAppDelegate *) [[UIApplication sharedApplication] delegate]; 

    [app.navBarController.navigationBar setHidden:YES]; 

    [app.navBarController pushViewController: localSearchViewController 
           animated:YES]; 
} 
+0

但將不會出現推我第二次嘗試推 – 2011-02-17 21:07:40

+0

這不太可能解決問題。對於nil的檢查是正確的,以防意圖創建一個`localSearchViewController`的新實例,這在他的代碼的上下文中是有意義的。 – Rog 2011-02-17 21:13:55

相關問題