我已經實現了一個UIPageViewController,允許用戶添加/刪除/刪除通過一個單獨的UITableView新的「頁面」,類似於蘋果如何實現在iPhone城市/旅遊地點天氣應用。項目發佈如下。目前沒有天氣或者花哨的用戶界面 - 我只是試圖關注下面的UIPageViewController管理。我們希望,如果有人想知道如何使用網頁執行UIPageViewController通過UITableView的管理,這是有用的: https://github.com/gallaugher/PageViewControllerDemo檢查方法:使用的UITableView細胞管理UIPageViewController頁面數據
這似乎很好地工作,但我是新來的這&相當不確定的,如果我用這個方法推薦或者做這是「Swifty」。
現在我有: PageViewController [初始視圖控制器] - 設置委託&數據源自我 - 實例化第一的UIViewController(想象一下當地的天氣CityViewController,即使不添加細節& UI在這個例子中)&設置初始值。城市(天氣位置)保存在[String]數組中:城市陣列
在CityViewController中 - 在右下角(在界面構建器中創建)中單擊「城市」按鈕時,它將打開一個UITableView (CityListViewController)。
- 爲了得到這個CityListViewController,我觸發了一個直接通過界面生成器從CityViewController中的「城市」按鈕繪製到城市列表控制器,以模態方式呈現的Segue。 - preapareForSegue將citiesArray傳遞給目標CityListViewController(UITableView)。
在CityListViewController(在UITableView的) - 用戶可以添加城市,移動,刪除的UITableView更新的tableView &陣列 - 點擊一個的tableView行(一個城市的名稱或「本地天氣」)觸發執行SEGUE,放卷CityViewController ,獲取源碼CityListViewController並使用它將數據傳回CityViewController(例如citiesArray = controller.citiesArray)。 - 這個@IBAction unwind函數調用一個展開到PageViewController(實際上不過是將數據從CityListViewController中的TableView傳遞到UIPageViewController PageViewController)。
放鬆在PageViewController - 抓鬥源(如CityViewController) - 通過密鑰數據後面(例如citiesArray = controller.citiesArray) - ,調用一個函數來實例視圖控制器爲當前&網頁集的PageControl指數等
Q1: 雖然這似乎工作&我沒有設法在測試過程中打破它,這是一個合理的方法,從UITableView,展開到一個ViewController,只是觸發另一個展開到UIPageViewController,沒有做任何事情比通過數據傳遞?
Q2: 我已經通過在PageViewController中以編程方式構建UIPageControl,但使用Interface Builder在城市視圖控件中創建了CityListViewController按鈕(UITableView)。這是正確的方法嗎?我似乎無法在同一個VC中創建這兩個。
非常感謝那些誰有耐心通過這個令人費解的解釋涉水。仍嘗試獲取VC之間傳遞數據的句柄,以及這與TableViews的PageControllers相關。