从表视图导航到表视图再到表视图 (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 代码)