我正在创建NSDate对象,我有一个导航栏,我试图将其保持在屏幕顶部的静态位置。 我希望在导航栏下创建我的NSDate对象,但是它们是在导航栏上方创建的,然后向下推导航栏。
这是我的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对象?
答案 0 :(得分:1)
如果要使用导航栏(而不是导航控制器),则需要使用UIViewController而不是UITableViewController。 UITableViewController的视图是表视图,因此您添加到视图的任何内容都将成为表的子视图。使用UIViewController,您可以在顶部添加导航栏,然后在下面添加表格视图。您必须为表视图添加一个IBOutlet,并使控制器成为您的表的数据源和委托(当您使用UITableViewController时,这些是自动的)。
当然,另一种方法是将UITableViewController嵌入导航控制器中。