Cocoa touch 如何将UITableViewController替换为包含UITableView的UIViewController?

Cocoa touch 如何将UITableViewController替换为包含UITableView的UIViewController?,cocoa-touch,ipad,Cocoa Touch,Ipad,我在Xcode中创建了一个新的SplitView iPad项目,并将代码设置为用数据填充TableView(在左侧的RootView中)。现在我想自定义RootView,使其包含一个DatePicker视图和TableView,但我不确定如何实现这一点。由于默认的RootViewController是UITableViewController的子类,因此我无法在IB中将日期选择器视图添加到它(因为您无法将日期选择器添加到UITableView)。要实现向“左”根视图添加日期选择器的目标,我所理解

我在Xcode中创建了一个新的SplitView iPad项目,并将代码设置为用数据填充TableView(在左侧的RootView中)。现在我想自定义RootView,使其包含一个DatePicker视图和TableView,但我不确定如何实现这一点。由于默认的RootViewController是UITableViewController的子类,因此我无法在IB中将日期选择器视图添加到它(因为您无法将日期选择器添加到UITableView)。要实现向“左”根视图添加日期选择器的目标,我所理解的唯一方法是将RootViewController从UITableViewController的子类更改为UIViewController的子类,然后我将能够使用IB向其中添加包含日期选择器视图和表视图的视图。问题

  • 这是向“左”根视图添加日期选择器的正确方法吗
  • 如果是这样,我将RootViewController更改为UIViewController(而不是UITableViewController)的子类,并向其添加TableView(以及日期选择器),这将如何影响我当前用于填充当前TableView的代码
  • 非常感谢你的帮助!下面是我的RootViewController的当前接口代码(如果有帮助的话)

    @interface RootViewController : UITableViewController <NSFetchedResultsControllerDelegate> {
    
        DetailViewController *detailViewController;
    
        NSFetchedResultsController *fetchedResultsController;
        NSManagedObjectContext *managedObjectContext;
    }
    
    @property (nonatomic, retain) IBOutlet DetailViewController *detailViewController;    
    @property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController;
    @property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
    
    - (void)insertNewObject:(id)sender;
    
    @end
    
    @接口RootViewController:UITableViewController{
    DetailViewController*DetailViewController;
    NSFetchedResultsController*fetchedResultsController;
    NSManagedObjectContext*managedObjectContext;
    }
    @属性(非原子,保留)IBOutlet DetailViewController*DetailViewController;
    @属性(非原子,保留)NSFetchedResultsController*fetchedResultsController;
    @属性(非原子,保留)NSManagedObjectContext*managedObjectContext;
    -(void)insertNewObject:(id)发送方;
    @结束
    
    是的,您不能向UITableViewController的子类添加元素,这很烦人,我要做的是,只需将RootViewController作为UIViewController的子类,在您的根视图控制器中定义一个属性UITableView*tableView,然后您就可以了,我以前已经做过了,而且非常简单,另外,请确保将nib中的UITAbleView更改为UIView,并在需要时向该视图添加一个表视图,并将其绑定到tableView属性(如果需要,也可以通过编程方式执行此部分)…请记住,如果您正在更改视图大小,这会导致UITAbleView自动调整大小(因为UITableViewCOntroller处理该问题),那么您可能需要通过编程来处理这个问题。

    谢谢,丹尼尔!这听起来是最好的方法。我想我还需要在我的RootViewController中添加对UITableViewDelegate和UITableViewDataSource的支持,以维护现有代码,对吗?是的,您也应该这样做(将委托和数据源设置为您之前让它们执行的任何操作)