我正在構建一個顯示來自多個API的統計信息的移動應用程序。 該應用程序根據活動的API顯示不同的值。在運行時,用戶可以選擇要顯示其值的API。但是,這些值始終顯示在同一個目標視圖控制器中。將Seques與UINavigationController結合
UINavigationController正在使用,我想推遲導航和導航UI,如果可能的話,即使UITableViewControllers支持導航欄。
請在問題結尾處查看故事板設計圖片。
環境:的iOS 9 /夫特2.2/7的XCode
在運行時,用戶將選擇從選擇控制器選擇視圖控制器。 通過「完成」UIBarButton從選擇視圖控制器中的一個繼續到目標控制器的適當方式是什麼?目標控制器不會更改。
我是否必須以編程方式爲嵌入UINavigationController中的每個控制器定義正確的bar按鈕以「完成」?
class UIViewController: UITableViewController { override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: nil) } }
其實想要從Choice控制器轉到目標控制器。是最好的選擇:self.navigationController.pushViewController(targetViewController)。這具有以編程方式定義視圖控制器轉換的缺點。 – Alex
如果要將其保留爲導航堆棧的一部分,可以將其推入堆棧。否則,這只是一個使用segue的問題,並且您有幾個實現segse的選項,如果您願意,也可以不使用代碼。另外,在我看來,以編程方式進行並不是一個「缺點」。這是做同樣事情的另一種方式。 – NonCreature0714