1

到目前为止,我有一个带有 UINavigationController 和一个 TableViewController 的 Storyboard。TableViewController 是 UITableViewController 的自定义类,我在情节提要上设置了这个。在 didFinishLaunching 的 Appdelegate 中,我有以下代码:

NSLog(@"rootviewconroller: %@",self.window.rootViewController);

//CTCAEMainTableViewController *mainViewController = (CTCAEMainTableViewController *)self.window.rootViewController;
UINavigationController *mainNavigationController = (UINavigationController *)self.window.rootViewController;
CTCAEMainTableViewController *mainTableViewController =  (CTCAEMainTableViewController *) mainNavigationController.topViewController;
NSLog(@"table: %@",mainTableViewController);
NSLog(@"table: %@",mainTableViewController.testMethod);

CTCAEMainTableViewController 是我的自定义 UITableViewController。

@interface CTCAEMainTableViewController : UITableViewController

但是我得到的只是一个普通的 UITableViewController,当我尝试调用我的 testMethod 时,我得到一个运行时错误:无法识别的选择器发送到实例。

我还尝试使用 NavigationController 的 viewControllers 方法访问 TableViewController,然后访问索引 0 处的对象。同样的事情。我很困惑,因为在我的故事板中它显示了它的自定义类。

4

2 回答 2

0

您确定您更改了情节提要中控制器的子类吗?

自定义表格视图控制器

请注意,在“自定义类”框中,我输入了我的 TVC 应该是的子类的名称。此外,我通过拖出一个通用 TVC 然后设置子类来创建故事板元素。

于 2013-03-29T05:15:06.517 回答
0

发现问题。我将我的故事板命名为 MainStoryboard,这也是故事板的默认名称,因此在我的项目中设置故事板似乎不起作用。制作了一个新的故事板,以不同的方式命名,以相同的方式完成其他所有操作,并且可以正常工作。

于 2013-03-29T16:54:35.960 回答