kly*_*aek 42 iphone interface-builder uinavigationbar uitableview ios
界面构建器不允许我单击并将导航栏拖动到表视图控制器上!这是非常令人沮丧的.
我想要的只是一个带有编辑按钮的表视图(在interface-builder中完成).如果这不可能,那么如何以编程方式添加导航栏?
提前致谢.
Gre*_*eso 53
从大纲视图中,确保选中了表视图控制器.
然后转到 Editor菜单,单击Embed In子菜单,选择Navigation Controller并选择.您的导航控制器指向您的tableview控制器,内置关系.
小智 18
对于顶部带有编辑按钮的表视图,使用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;
}
Run Code Online (Sandbox Code Playgroud)
并且,您的UINavigationController视图显示为一个表视图,导航栏右侧有一个编辑按钮.
由于控制器位于堆栈的顶部,因此左侧没有"后退"按钮,因此您可以使用self.navigationItem.leftBarButtonItem您创建的任何UIBarButtonItem.
jle*_*ehr 12
我同意在Interface Builder中很难弄清楚如何做这样的事情,但幸运的是,可以通过这种方式将导航栏和条形按钮项添加到表视图中.这是怎么做的:
编辑
上述方法的问题在于,正如Bogatyr指出的那样,导航栏随后将与表视图一起滚动.Apple建议使用自定义子类,UIViewController该子类拥有导航栏和UITableView调整大小的实例以适合.不幸的是,这意味着您必须自己实现子类UITableViewController所需的行为UIViewController.
另一种似乎运行良好的方法是创建一个自定义子类,UIViewController该子类拥有包含导航栏的空白背景视图以及UIView适合导航栏的空白内容视图(实例).您的自定义子类将有一个指向UITableViewController同一nib文件中的实例的插座.
这样做的好处是允许在Interface Builder中创建和配置所有视图组件,并且不需要UITableViewController从头开始实现方法.你需要照顾的表视图控制器的父,唯一的细节是添加表视图作为父母的内容视图的子视图viewDidLoad.
父级可以实现导航栏按钮项的操作方法,并在必要时实现委托模式.
从iOS6开始,您可以使用容器视图.因此,您需要做的是使用View控制器,向其添加导航栏,然后将Container View添加到同一个视图控制器.它会自动将新的视图控制器链接添加到容器视图中.现在只需删除故事板中的那个,以及您的表视图控制器.现在通过控制拖动将表视图控制器嵌入到容器视图中.希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
67177 次 |
| 最近记录: |