2013-02-17 67 views
-3

我有searchBar和searchDisplayController放在tabbar這是主tabbar。
當我通過按下來打開新的viewcontroller沒有問題。[__NSCFString setView:]:無法識別的選擇器發送到實例0x8292720

mainTabbar -> navigationController+searchController -(push after rowdidselect)-> newVC -(push)-> newVC -(push)-> ...

但是當我做一些現在的模態。

mainTabbar -> navigationController+searchController -(push after rowdidselect)-> newVC -(modal)-> newVC

然後回到信息搜索結果

mainTabbar -> navigationController+searchController

我不能再推動newViewController拿到了這個錯誤:

[__NSCFString setView:]: unrecognized selector sent to instance 0x8292720 

什麼發生在我身上?所有結果只是告訴我有關gesturecognizer。

::後,我讓殭屍,我得到這個消息

-[UITapGestureRecognizer retain]:message sent to deallocated instance 0xfcd83b0

我猜TapGestureRecognizer與searchDisplayController表的單元格被釋放。 任何人都知道如何保留他們?

回答

0

你真的不提供有關你的情況多的信息,但在一般的錯誤日誌:

[__NSCFString setView:]: unrecognized selector sent to instance 0x8292720 

意味着你要發送的setView消息NSString類型錯了對象。

既然你說你的代碼在一種情況下工作,我認爲這不是發送消息到錯誤的對象的問題。相反,這與正確的對象被釋放有關,並且它的內存被重新用於NSString對象(然後接收該消息)。

我懷疑關鍵可能在於如何返回到搜索結果,但是您應該提供更多的代碼來讓我們瞭解正在發生的事情。

+0

模態我用推抵扣dismissmodalViewController 我用dismissViewController 要關閉的ViewController ::後,我讓殭屍,我得到這個消息 - [UITapGestureRecognizer保留]:消息發送到釋放實例0xfcd83b0 – user1047504 2013-02-17 09:12:48

+0

好,那證實了我的假設。你能展示你如何以及在哪裏創建手勢識別器?我認爲你的控制器(包含手勢識別器)被解除分配,但附加到它的視圖仍然存在(它不會從其超級視圖中移除),因此它不斷髮送消息給識別器...但沒有看到更多代碼,我不能說更多... – sergio 2013-02-17 09:20:20

+1

對於推 - 流行爲什麼你關閉視圖控制器與'dismissViewController',而不是'popViewControllerAnimated:'? – 2013-02-17 09:20:53

相關問題