从表视图导航到表视图再到表视图 (iOS)

Posted

技术标签:

【中文标题】从表视图导航到表视图再到表视图 (iOS)【英文标题】:Navigating from table view to table view to table view (iOS) 【发布时间】:2011-04-04 19:22:33 【问题描述】:

我在定义多个表格之间的导航时遇到了困难。我正在使用 ios 应用程序的导航模板。从 RootViewController(RootViewController.xib 已经包含一个表),我可以导航到另一个表视图(在界面构建器中,我能够将 IBOutlet 与自定义 UITableViewController 连接起来):

@interface RootViewController : UITableViewController <NSFetchedResultsControllerDelegate> 
    xxxTableViewController *teeTimeTableVC;

@property (nonatomic, retain) IBOutlet xxxTableViewController *xxxTableVC;

在 RootViewController.m 中,以下行可以正常工作:

[self.navigationController pushViewController:self.xxxTableVC animated:YES];

界面构建器不允许我将第二个 XIB 文件(比如说 xxxTableViewController)中的 IBOutlet 与下一个 UITableViewController 连接。

@interface xxxTableViewController : UITableViewController 
    <UITableViewDataSource, UITableViewDelegate> 
    yyyTableViewController *yyyTableVC;

@property (nonatomic, retain) IBOutlet yyyTableViewController *yyyTableVC;

在 xxxTableViewController.m 中以下行显示警告:

[self.navigationController pushViewController:self.yyyTableVC animated:YES];

在代码中,我还收到一条警告:当从不同的 Objective-C 类型传递“pushViewController:animated:”的参数 1 时,不兼容的 Objective-C 类型“struct yyyViewController *”,预期为“struct UIViewController *”

我是否试图实施一个糟糕的概念?是否只能直接从 RootViewController 以这种方式进行?两个控制器类似乎是相同的:

@interface yyyTableViewController : UITableViewController 
    <UITableViewDataSource, UITableViewDelegate>

谁能给我一个提示?我是否需要使用不同的 UI 元素或实现其他协议?

谢谢你,帕特里克

【问题讨论】:

【参考方案1】:

问题是您的第二个控制器没有navigationController 成员,因此当您尝试使用它时编译器会抱怨。您需要自己创建此成员,并在初始化期间将其传递给类。

【讨论】:

你好,安迪。谢谢您的回答。我认为我不同意或者我不完全理解。 navigationController 成员似乎是从 UITableViewController 继承的,它从 UIViewController 继承它。 另一个警告警告可能更明确:xxxTableViewController.m:警告:语义问题:不兼容的指针类型将'yyyTableViewController *'发送到'UIViewController *'类型的参数但这也不能解释问题使用界面生成器。是否有可用的教程演示两个以上表格之间的导航? @user690110 再次查看您的警告,听起来您几乎没有包含 yyyTableViewController 的标头,因此编译器无法确定 yyyTableVC 的类型。我不确定还有什么会导致该警告。

以上是关于从表视图导航到表视图再到表视图 (iOS)的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从集合视图传递到表视图类?

从视图控制器返回到表视图控制器时,表视图单元“跳跃”

将视图添加/删除到表视图的超级视图后,UITableView 停止滚动

将数据从集合视图传递到表视图

从 IB 添加到表视图的 UIView 被调整大小并且不保持固定大小(XCode 6 | ios 8 | 非 ARC 代码)

JSON 未加载到表视图中