我已經在iOS中創建了基本上是文件夾列表的屏幕。它可以包含文件和文件夾。當我點擊一個文件夾時,我希望有一個新的屏幕顯示該文件夾的內容。但是,我想用文件做幾件事情。已將UITableViewCell按鈕操作返回爲未處理觸發tableView:didSelectRowAtIndexPath
我有一個UITableView
與它自己的自定義UITableViewCell
。在它上面有兩個按鈕,我只想在文件行上執行操作。一個按鈕執行一個segue到另一個視圖控制器(查看屬性)。第二個按鈕執行操作(下載文件)。對於文件夾,我還將accessoryType
設置爲UITableViewCellAccessoryDisclosureIndicator
。還有一個tableView:didSelectRowAtIndexPath:
方法執行檢查,看看它是否是一個文件夾,並顯示一個新的屏幕,如果它是。 (雖然我不知道這個檢查是否有必要,因爲它只是因爲accessoryType
而被稱爲文件夾。
我的問題(我認爲)是操作順序在文件夾項目上搞亂了一些東西
在一個文件夾上,如果我點擊觸發文件的繼續按鈕,tableView:didSelectRowAtIndexPath:
方法會在prepareForSegue:sender:
方法之前被調用,所以我的文件夾會正確地執行它自己的segue,但是如果我點擊操作按鈕,稱爲第一個,並且tableView:didSelectRowAtIndexPath:
未被調用
看起來好像UITableViewCellAccessoryDisclosureIndicator
設置覆蓋了segse,但不覆蓋動作
是否可以從操作或其他可調用的方法返回結果,以指示按鈕操作未處理且父操作應該觸發?我知道這在Windows應用程序中通常是允許的,但我不知道Objective-C中是否有類似的支持。
我目前的解決方法是在操作中添加一個檢查以查看它是否爲文件夾,然後執行我通常在tableView:didSelectRowAtIndexPath:
中執行的所有步驟。這有效,但我希望有一個更優雅的解決方案。我也將研究是否可以在同一個表中有兩個不同的UITableViewCell
。
這是一個解決實際問題的方法,但這是我應該首先完成的工作。 –