我已经设置了一个表格视图。在主视图中,我使用了一条警报消息:如果用户单击"确定"按钮,则表视图将打开。
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0) {
//do nothing
}
else if (buttonIndex == 1) {
myTableViewController *nextViewController = [[myTableViewController alloc] initWithNibName:nil bundle:nil];
[self presentViewController:nextViewController animated:YES completion:nil];
}
}
确实会显示表视图,但缺少某些部分。顶部有一个导航栏,底部有一个工具栏,这些都丢失了。仅显示单元格。
当我从其他方法转到此表视图时,它可以正确显示,所以我不知道出了什么问题。
有人可以帮忙吗?谢谢!
如果要显示视图,则需要创建UINavigationController
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0) {
//do nothing
}
else if (buttonIndex == 1) {
myTableViewController *nextViewController = [[myTableViewController alloc] initWithNibName:nil bundle:nil];
/* BEGIN NEW CODE */
/* Here, you will init the navController with your table controller as the root, this is important. */
UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController:nextViewController];
[controller setModalPresentationStyle:UIModalPresentationFormSheet];
[controller setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
/* END NEW CODE */
/* You will now present "controller" instead of the table controller */
[self presentViewController:controller animated:YES completion:nil];
}
}
我还要注意,您需要在myTableViewController
中创建一个"关闭"按钮(或者您打算关闭此导航控制器(。
您正在调用 presentViewController,它不会将其推送到导航堆栈,而是在当前视图的顶部以模式方式显示它。您要呼叫:
[self.navigationController pushViewController:nextViewController animated:YES];