Ios 故事板中的组件重用
我是iOS开发新手,有几年的Android经验。我直接从XCode 5和故事板范例开始。我喜欢用可视化的方法来勾勒出应用程序的流程,但依我看,它并没有真正强制组件重用,或者我不知道如何做到这一点 我有一个实际的问题,这是如下所示:与典型的主-细节方法不同,我有一种情况,在这种情况下,单击一个TableView单元格会强制推送到另一个TableView,它看起来相同,行为也相同。我希望在整个应用程序中重用两种特定类型的TableViewCell,因此我不能将第一个TableViewController复制几次。我需要一种类型的TableViewCell中的更改在任何地方都会受到影响,Tableview的外观和行为也是如此。有点像重用一个组件,你会得到我希望的结果 我尝试在单独的xib文件中创建自定义TableView和TableViewCell,并将其连接到自定义控制器类。然而,当我想在情节提要中重用该控制器类时,我无法从单元到下一个单元进行切换,因为只显示视图控制器,但内部没有视图 也许,我做错了。也许,我应该制作一个单一的控制器,如果可能的话,强迫它自动执行,不知道Ios 故事板中的组件重用,ios,xcode,cocoa-touch,xcode-storyboard,Ios,Xcode,Cocoa Touch,Xcode Storyboard,我是iOS开发新手,有几年的Android经验。我直接从XCode 5和故事板范例开始。我喜欢用可视化的方法来勾勒出应用程序的流程,但依我看,它并没有真正强制组件重用,或者我不知道如何做到这一点 我有一个实际的问题,这是如下所示:与典型的主-细节方法不同,我有一种情况,在这种情况下,单击一个TableView单元格会强制推送到另一个TableView,它看起来相同,行为也相同。我希望在整个应用程序中重用两种特定类型的TableViewCell,因此我不能将第一个TableViewControll
您会怎么做?您可以从所选的DID执行编程顺序 #导入“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];
如果您试图在同一
UITableView
上执行一个序列,您可以通过
为了完整起见,我将报告其中包含的内容:
如果您使用的是动态单元原型,那么显然您可以进行一系列操作
从表视图单元格到控制器,没有任何问题
当您完成您的segue时,您将得到:
但是让我们想象一下,有一些原因是不存在的
为您工作,例如,您无法从手机中获得segue(例如
例如,您需要从didselectrowatinexpath
调用segue,而不是
选择单元格时)。在这种情况下,您不能使用以前的
技术
在这种情况下,有两种选择:
didSelectRowAtIndexPath
对发送者使用self
,然后
shouldPerformSegueWithIdentifier
仅当发送方
==self
(因此当发送方
是表视图单元格时,它将被取消)
didSelectRowAtIndexPath
然后推送/呈现
视情况而定的视图控制器;或performsguewithidentifier
以编程方式进行,但它可以工作。不
最优雅的解决方案,但我认为这比拥有
故事板上的额外场景嗯。。在iOs中,换个角度考虑,如果我是你,我会创建多个
ViewController
,即使它们几乎相同,并创建一个自定义单元格类,并使此单元格具有一个配置块。
现在,对于每个ViewController
((或TableViewController
),您可以重用相同的自定义UITableViewCell
,只需将每种情况略有不同的内容传递给它,而且您还可以创建一个具有一般配置的BaseTableViewController
,并在每个ViewController
中传递所需的自定义更改
想想看,当你看你的故事板时,你将能够看到你所有的工作流程,当出现问题时,你将能够调试,如果你要使用你建议的,调试将是一个真正的痛苦,我想
无论如何,尝试一下,如果你需要进一步的澄清,问更多 你能试着更具体一点吗?添加一些关于您正在尝试执行的操作的代码…您好。您是否仅对细胞使用XIB?或者你也有定制课程?欢迎来到iOS开发的精彩世界!我建议您重新考虑是否真的要使用故事板:+1。这也是我推荐的解决方案,但为了不混淆OP,我想指出,这根本不使用segue。这是使用
UINavigationController
的老方法,您只需实例化下一个VC并手动推送它。当分段不适合您的需要时,降低到较低级别没有什么错!如果OP实际使用的是UINavigationController
,那么最后一行应该是[self.navigationController-pushViewController:newView-animated:YES]
:)