我正在开发一个应用程序,它为Notification Center提供了一个新的Today Extension / Widget,因为iOS 8已经添加了这个功能。
但是,我需要扩展来根据一个简单变量的值在两个不同的视图控制器之间进行选择,这些视图控制器都在Storyboard中设置。因此,如果用户在主应用程序中进行更改,则此变量将具有不同的值,因此Today Extension应该加载不同的初始视图控制器。
我已经阅读了类似的问题及其解决方案,因此我尝试将虚拟视图控制器设置为扩展故事板上的初始视图控制器,创建指向其他视图控制器的多个模态segue,为它们提供标识符名称,在segues上禁用动画并为虚拟视图控制器实现自定义类。然后,此课程会在performSegueWithIdentifier: sender:nil
中调用viewDidAppear:
。
然而,这似乎不适用于今天的扩展,只有节目"无法加载"当我在模拟器中测试它时。
编辑: 好吧,我做错了什么,它确实有效。但是每次打开通知中心时,显示的视图控制器的内容都会在几毫秒内消失并重新出现,因为虚拟视图控制器会再次加载。此外,在呈现其他视图控制器时,扩展高度不会改变。
我可以做些什么来实现今天扩展的理想行为?
答案 0 :(得分:0)
您可以使用 TableViewController ,并将不同的逻辑放入 TableCell 而不是 ViewController 。在tableView(tableView:, cellForRowAtIndexPath:)
中为您的变量选择不同的 TableCell 很容易。