如何约束导航栏并防止其移动

时间:2014-06-28 15:39:59

标签: ios cocoa-touch storyboard

我正在创建NSDate对象,我有一个导航栏,我试图将其保持在屏幕顶部的静态位置。 我希望在导航栏下创建我的NSDate对象,但是它们是在导航栏上方创建的,然后向下推导航栏。

Before adding date elements After adding date elements

这是我的insertNewObject函数

- (void)insertNewObject
{
if (!_objects) {
    _objects = [[NSMutableArray alloc] init];
}
[_objects insertObject:[NSDate date] atIndex:0];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}

我怀疑它与调用insertNewObject方法的函数有关。具体来说,我相信自我调用意味着它告诉它在ViewController的顶部创建它。

- (IBAction)addData:(id)sender {
// call insertNewObject
[self insertNewObject];
}

如何限制导航栏并阻止在导航栏上方创建新的NSDate对象?

1 个答案:

答案 0 :(得分:1)

如果要使用导航栏(而不是导航控制器),则需要使用UIViewController而不是UITableViewController。 UITableViewController的视图是表视图,因此您添加到视图的任何内容都将成为表的子视图。使用UIViewController,您可以在顶部添加导航栏,然后在下面添加表格视图。您必须为表视图添加一个IBOutlet,并使控制器成为您的表的数据源和委托(当您使用UITableViewController时,这些是自动的)。

当然,另一种方法是将UITableViewController嵌入导航控制器中。