Iphone 单独的UITableView控制器/代理引用难题

Iphone 单独的UITableView控制器/代理引用难题,iphone,objective-c,Iphone,Objective C,我一直在遵循下面()中的指南,这非常有帮助,通过完成这些步骤,我成功地创建了一个带有单独控制器和委托/数据源的UITableView 然而,即使一切正常,我也无法引用或更改UITableview的任何实例 例如:假设表的UIViewController为TableViewController,单独的委托/数据源类为TableDelegate。我已经在interface builder中连接了所有内容,就像前面的SO问题一样。在TableDelegate.m的viewDidLoad中,我放置了以下

我一直在遵循下面()中的指南,这非常有帮助,通过完成这些步骤,我成功地创建了一个带有单独控制器和委托/数据源的UITableView

然而,即使一切正常,我也无法引用或更改UITableview的任何实例

例如:假设表的UIViewController为
TableViewController
,单独的委托/数据源类为
TableDelegate
。我已经在interface builder中连接了所有内容,就像前面的SO问题一样。在TableDelegate.m的
viewDidLoad
中,我放置了以下内容:

self.navigationItem.leftBarButtonItem=self.editButtonItem

UITableView中不会发生应有的任何更改。这包括推送UIViewController,这也没有任何效果,就像代码不在那里一样,尽管当I
NSLog()
时,它似乎正在运行

然而,奇怪的是,即使这不起作用,如果我将表的alpha属性设置为0,它也会起作用


提前感谢您的帮助,如果您需要更多信息来解决此问题,请告诉我。

从您的评论来看,
TableViewController
TableDelegate
似乎都是
UIViewController
的子类。如果是这种情况,请通过将它们推到
UINavigationController
或将它们添加到
uitabarcontroller
,确保这两个控件都添加到导航堆栈中:否则,可能无法调用
viewDidLoad


顺便说一句,当你已经有了一个
UITableViewController
来处理这个表视图时,我认为让你的
UITableViewDataSource
成为一个
UIViewController
子类不是一个好主意。

TableDelegate
UIViewController
子类吗?它是
UITableViewController
子类。所以,
TableDelegate
TableViewController
都是
UITableViewController
UIViewController
子类?是的,这就是为什么我感到困惑的原因。它们都被添加到导航堆栈中了吗?我甚至认为这是一个绝对糟糕的想法。让您的委托成为UIViewController或使其派生自NSObject@AndrewGrant:由于委托/数据源在本例中不是文件的所有者(UIViewController),因此它从NSObject派生为
UITableViewController
。但是,这个问题仍然没有解决,因为我无法从
TableDelegate
文件中更改任何关于表视图的UINavigationController的内容。@Chromium,您应该使
TableDelegate
从NSObject派生,并将其设置为符合
UITableViewDelegate
UITableViewDataSource
协议,而不是
UITableViewController
UITableViewController
是一个视图控制器,应该被推到
UINavigationController
uitabarcontroller
@conmulligan:我理解您的逻辑-但是,如何实现
(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(nsindexath*)之类的功能如果不是视图控制器,则可以使用indexPath
并将视图推送到堆栈上?您可以引用
TableViewController
的导航控制器并将视图推送到该控制器上,但这很麻烦。至少,
TableViewController
应该是
UITableViewDelegate
;有没有一个很好的理由不这样做?