0

我有一个带有 tableview 控制器作为第一个控制器的导航控制器,但是当数据库为空时,我想向用户显示一个视图,该视图要求用户提供一些信息以填充数据库并将其显示在导航控制器而不是视图中在情节提要中分配,我想我必须以编程方式执行此操作,但我是 iphone 开发的新手,老实说不知道从哪里开始。

4

1 回答 1

1

这是你如何做到的。在情节提要中为您的视图控制器创建一个新场景,用户将在其中提交信息(假设它称为 CollectInfoViewController)。然后从您的 tableview 控制器创建一个模态segue 到 CollectInfoViewController。在 Attributes Inspector 中,将 segue 的 Identifier 属性设置为“CollectInfo”,以便稍后识别它。

然后当你的 tableview 控制器的viewDidLoad方法运行时,询问 table view 委托是否有任何行要显示。如果没有,以编程方式对您的 CollectInfoViewController 执行 segue。

- (void)viewDidLoad
{
    [super viewDidLoad];   

    if ([self.tableView.dataSource tableView:self.tableView numberOfRowsInSection:0] == 0) {
        [self performSegueWithIdentifier:@"CollectInfo" sender:self];     
    }
}

在您的 CollectInfoViewController 中,一旦用户输入了信息并将其存储在数据库中,您就可以从 CollectInfoViewController 中调用以下命令来关闭该视图。这会将用户返回到 tableview。

[self dismissModalViewControllerAnimated:YES];

最后,回到您的 tableview 控制器中,您可能需要使用已收集的新数据重新加载您的表。您可以在 中执行此操作,viewWillAppear当模态视图控制器被解除时将调用它。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.tableView reloadData];
}
于 2012-04-05T21:59:52.957 回答