界面生成器不允许我单击导航栏并将其拖动到表视图控制器上!这是超级令人沮丧的。
我想要的只是一个带有编辑按钮的表视图(在interface-builder中完成)。如果这是不可能的,那么我如何以程序方式添加导航栏?
提前谢谢。
发布于 2014-09-13 02:07:33
在outline视图中,确保您的表视图控制器被选中。
然后转到编辑器菜单,单击Embed In子菜单,然后选择导航控制器。您的导航控制器指向具有内置关系的tableview控制器。
发布于 2011-05-05 10:01:17
对于顶部有编辑按钮的表视图,请使用UINavigationController,并使用UITableView作为rootView。这意味着您将为表视图创建一个自定义UITableView子类,并将其用作UINavigationController实例的rootView。(在编程上,它是用UINavigationController的-(id)initWithRootViewController设置的。它也可以通过IB进行设置。)
然后,在UITableView子类中,取消对以下行的注释:
- (void)viewDidLoad {
[super viewDidLoad];
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
self.navigationItem.rightBarButtonItem = self.editButtonItem;
}瞧,UINavigationController的视图显示为一个表视图,导航栏右侧有一个编辑按钮。
由于控制器位于堆栈的顶部,因此左侧没有“后退”按钮,因此您可以对创建的任何UIBarButtonItem使用self.navigationItem.leftBarButtonItem。
发布于 2011-02-22 03:50:14
我同意在Interface Builder中很难弄清楚如何做这样的事情,但幸运的是,可以通过这种方式将导航栏和栏按钮项添加到表视图中。下面是如何做的:
编辑
上述方法的问题是,正如Bogatyr指出的那样,导航栏将与表视图一起滚动。苹果公司建议使用UIViewController的自定义子类,它同时拥有导航栏和调整大小以适合的UITableView实例。不幸的是,这意味着您必须自己实现UIViewController子类所需的UITableViewController行为。
另一种似乎效果很好的方法是创建UIViewController的自定义子类,该类拥有一个包含导航栏的空白背景视图和一个适合于导航栏下的空白内容视图(UIView的一个实例)。您的自定义子类将有一个插座,指向同一nib文件中的UITableViewController实例。
这样做的好处是允许在Interface Builder中创建和配置所有视图组件,并且不需要从头开始实现UITableViewController方法。在表视图控制器的父级中,您需要注意的唯一细节是在viewDidLoad中将表视图添加为父级内容视图的子视图。
父级可以实现导航栏按钮项的操作方法,并在必要时实现委托模式。
https://stackoverflow.com/questions/5068659
复制相似问题