Iphone 单独的UITableView控制器/代理引用难题
我一直在遵循下面()中的指南,这非常有帮助,通过完成这些步骤,我成功地创建了一个带有单独控制器和委托/数据源的UITableView 然而,即使一切正常,我也无法引用或更改UITableview的任何实例 例如:假设表的UIViewController为Iphone 单独的UITableView控制器/代理引用难题,iphone,objective-c,Iphone,Objective C,我一直在遵循下面()中的指南,这非常有帮助,通过完成这些步骤,我成功地创建了一个带有单独控制器和委托/数据源的UITableView 然而,即使一切正常,我也无法引用或更改UITableview的任何实例 例如:假设表的UIViewController为TableViewController,单独的委托/数据源类为TableDelegate。我已经在interface builder中连接了所有内容,就像前面的SO问题一样。在TableDelegate.m的viewDidLoad中,我放置了以下
TableViewController
,单独的委托/数据源类为TableDelegate
。我已经在interface builder中连接了所有内容,就像前面的SO问题一样。在TableDelegate.m的viewDidLoad
中,我放置了以下内容:
self.navigationItem.leftBarButtonItem=self.editButtonItem代码>
UITableView中不会发生应有的任何更改。这包括推送UIViewController,这也没有任何效果,就像代码不在那里一样,尽管当INSLog()
时,它似乎正在运行
然而,奇怪的是,即使这不起作用,如果我将表的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
;有没有一个很好的理由不这样做?