如何构建一个混合了表和标签的objective-c视图控制器

Bra*_*zak 0 xcode objective-c xcode-storyboard

亲爱的Stack溢出天才,

我已经tableViewController为我的应用程序做了一个简单的页面,但现在我需要一些更高级的东西.我有一个UI设置,包括链接,标签,文本框,最后是一个数据表,到目前为止,我的视图如下所示:

我想在文本框区域下面添加一个表并使其可滚动,我究竟如何构建我的视图控制器以及如何从控制器1 - >控制器2传递数据?

我尝试将当前更改UIViewController为a tableViewController但是我对异常异常有所了解.

那么我的选择是什么?

  1. 创建两个控制器,一个用于主屏幕,另一个用于表格
  2. 以某种方式解决我的问题,并重新使用相同的 UIViewController
  3. 别的什么?

这是我到目前为止主视图控制器的加载代码,我想我被困在哪里,如果我从我的"tableview"创建一个插座到这个UIView,我怎么调用代码来"填满"表,没有创建一个单独的独立视图控制器.

到目前为止,这是我的代码:

[self.objectManager getObjectsAtPath:@"/api/workorder/GetWorkOrderDetail"
       parameters:params
       success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
       NSLog(@"It Worked");
       _workOrders = mappingResult.array;

       //paint screen
       WorkOrderBig *mainWorkOrder = [_workOrders objectAtIndex:0];


       self.lblWorkOrderId.text = mainWorkOrder.WorkOrderId;
       self.lblPO.text = mainWorkOrder.PO;
       self.lblSupervisor.text = mainWorkOrder.Supervisor;
       self.lblPriority.text = mainWorkOrder.Priority;
       self.lblStatus.text = mainWorkOrder.Status;
       self.lblReceivedDate.text = [CommonUtils GetStringFromDate:mainWorkOrder.ReceivedDate];
       self.lblDueDate.text = [CommonUtils GetStringFromDate:mainWorkOrder.DueDate];

       WorkOrderProblem *problem = [mainWorkOrder.Problems objectAtIndex:0];
       self.txtProblem.text = problem.Description;



                }
       failure:^(RKObjectRequestOperation *operation, NSError *error) {
       NSLog(@"What do you mean by 'there is no coffee?': %@", error);
                 }];
Run Code Online (Sandbox Code Playgroud)

这更像是一个架构问题,我可以选择以正确的方式执行此操作,因此请建议您选择最佳方式,谢谢!

And*_*deh 5

使当前的视图控制器符合UITableViewDataSourceUITableViewDelegate协议是不合理的.这将允许您填充并响应表视图.但是,这很可能会增加你的课程的实现.如果您这样做,建议在您的顶部的私人扩展中声明符合性.m.

另一种选择是创建一个符合两个代表的单独类.然后,您只需将此类的实例维护为当前控制器的私有成员.在您的viewDidLoad:实例中,您将实例化该类并将其设置为表视图的委托和数据源.

另一种选择是添加一个子类UITableViewController作为当前视图控制器的子控制器.

objc.io在第一期的文章中做了很多工作:更轻的视图控制器:干净的表视图代码.