我是iOS开发的新手,具有几年的Android经验。我直接开始使用XCode 5和Storyboard范例。我喜欢用草图绘制应用程序流的视觉方法,但恕我直言,它并没有真正强制组件重用,或者我可能不知道如何去做。
我有一个实际问题,如下所示:我有一种情况,其中点击一个TableView单元格强制推送到另一个看起来相同且行为相同的TableView办法。我希望在整个应用程序中重用两种特定类型的TableViewCell,因此我不能多次复制第一个TableViewController。我需要在一种类型的TableViewCell中进行更改,以便在任何地方受到影响,对于Tableview的外观和行为也是如此。有点像重复使用组件,你得到我希望的图片。
我尝试在单独的xib文件中创建自定义TableView和TableViewCell,将其连接到自定义控制器类。然而,当我想在故事板中重用那个控制器类时,我无法从单元格到下一个单元格,因为只显示视图控制器,但内部没有视图。
也许,我做错了。也许,我应该制作一个单一的控制器,如果可能的话,强迫它自己设置,不知道。
你会做什么?
答案 0 :(得分:0)
你可以从被选中的人那里做程序性的猜测......
#import“someVC.h”
然后当你想要寻找新的VC
// Create a VC and remember to set the Storyboard ID of someVC (example someVCID)
someVC *newView = [self.storyboard instantiateViewControllerWithIdentifier:@"someVCID"];
// Can't remember how this works but you can change the Transition method
// newView.modalTransitionStyle = UIModalTransition;
// If you want to pass data, setup someArray in the someVC .h with @property (nonatomic, strong) NSArray *someArray;
newView.someArray = MyLocalArray;
// Animated or not
[self presentViewController:newView animated:NO completion:nil];
答案 1 :(得分:0)
如果您要执行的操作是在同一UITableView
上执行segue,则可以this answer
我会报告它包含的完整性:
如果你正在使用动态细胞原型,你显然可以做一个segue 从表格视图单元格到控制器没有任何问题。
当你制作segue时,你最终得到:
但让我们想象一下,有一些原因没有 为你工作,例如你不能从细胞中获得一个segue(for 例如,您需要从
didSelectRowAtIndexPath
调用segue,而不是 在选择细胞时)。在这种情况下,您无法使用之前的那个 技术在这种情况下有几种选择:
作为pointed out by Chris,如果仅支持iOS 6及更高版本,请使用上述技术,但(a)确保您的
didSelectRowAtIndexPath
对self
使用sender
,然后使用shouldPerformSegueWithIdentifier
sender == self
sender
只允许seguedidSelectRowAtIndexPath
(因此当performSegueWithIdentifier
是表格视图单元格时,它将被取消);也许更容易,只是不要定义一个segue并手动拥有{{1}}
instantiateViewControllerWithIdentifier
然后推/出 那视图控制器;或- 醇>
您可以使用以下方法,kludgy解决方法:简而言之,向视图控制器添加一个按钮(将其拖动到 底部),它不会出现在视图上,但你可以使用它 塞格斯。首先,将圆角按钮拖动到控制器的栏上 场景的底部:
现在,您可以从该按钮向视图控制器创建一个segue:
因此,你最终再次得到了自我引用的信息:
您必须为该segue指定一个标识符,以便您可以调用它 以编程方式通过{{1}},但它的工作原理。不 最优雅的解决方案,但我认为它比拥有更好 故事板上的额外场景。
这些都不是理想的,但你有很多选择。
答案 2 :(得分:0)
ViewController
,即使它们几乎相同,并创建一个自定义单元类,并使这个单元格进行配置块。
现在,对于每个ViewController
((或TableViewController
)),您可以重复使用相同的自定义UITableViewCell
,并将其传递给每个案例略有不同,而且您还可以创建{{1将具有常规配置,并在每个BaseTableViewController
中传递您需要的自定义更改。
考虑一下,当你查看你的故事板时,你将能够看到你的所有工作流程,当出现问题时你将能够进行调试,如果你要使用你的建议,调试将是我想象中真正的痛苦。
无论如何,试试看,如果你需要进一步澄清,可以询问更多。