我有下一个问题:
在我的项目中,我有下一个:
的UITabBarController
....一些UINAvigationControllers ....
*(1)UINavigationController
UIViewController (UItableView) - When select one row it goes to...(by push) to:
UIViewController (UItableView) - And here the same than before, for each row i open a new tableview....
我的问题是当我点击标签栏项目时,我看到了上次看到这个的viewController视图,并且没有重新加载到*(1)第一次查看另一次(就像我想的那样)
每次我在标签栏项目中点击时,我需要写的东西我重新加载此标签栏项目的第一个视图。
PD:我有电话:[theTableView reloadData];在方法“viewWillAppear”。
我正在做的事情是: 在我的导航控制器中,我有一个视图控制器(如tableview),当我单击一行时,在“didSelectRowAtIndexPath”方法中,我创建另一个调用“myController”的视图控制器,我按这样推送这个元素([[self navigationController] pushViewController :myController动画:是];) 这是每次我在下一个表格中单击一行时。
然后我认为问题不是重新加载方法viewWillAppear中的表视图,而是从屏幕上取出我插入到根目录的下一个视图控制器。
我很好吗?
IN RESUME:
我的应用程序有下一个:
我的问题是,当我点击标签栏时,我想回到第一主表。目前应用程序没有这样做,它继续在scree(表视图)中,这是此选项卡中的最后一次访问。 (不完全正确,因为如果我点击两次,是的,它会回来但不要输入“viewWillLoad”或“didSelectViewController”方法,因为我制作了NSLog并且它没有显示它们。)
草图可以是这样的:
AppDelegate - > WelcomeScreen - > VideosTableViewController - > RElatedVideosTableViewController - > ..... .......
第一件事是显示欢迎屏幕(不是那么重要,只有一些按钮),在这个类中,我使用“localViewControllersArray”初始化TabBArController,它是一个每个用一个ViewController初始化的NavigationControllers的NSMutableArray。
然后当我按下此欢迎屏幕中的一个按钮时,我会看到标签栏控制器(显示VideosTableViewController)
在下一步中,当我单击一行时,在“DidSelectRowAtIndexPath”中我创建了一个RElatedVideosTableViewController,我按“[[self navigationController] push ....:”相关视频表视图我创建“动画” :YES];
我也有:
添加:UITabBarControllerDelegate 添加:
(无效)tabBarController:(的UITabBarController *)tabBarController didEndCustomizingViewControllers: (NSArray的*)viewControllers 更改:(BOOL)已更改{}
(无效)tabBarController:(的UITabBarController *)tabBarController didSelectViewController:(UIViewController的*)的viewController {if([viewController isKindOfClass:[UINavigationController的 类]]) {[(UINavigationController *)viewController popToRootViewController:NO]; [theTableView reloadData]; 的NSLog(@ “RELOAD”); }
在课程初始化时: [super.tabBarController setDelegate:self];
但是在控制台中,我没有看到我正在制作的NSLog,而不是这种方法。
答案 0 :(得分:1)
让您的应用在Interface Builder或代码中委派标签栏控制器的委托:
- (void)applicationDidFinishLaunching
{
...
self.tabBarController.delegate = self;
}
然后,当标签栏切换到不同的视图时,您会收到通知,此时您会弹出所选导航控制器的根目录:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if ([viewController isKindOfClass:[UINavigationController class]])
{
[(UINavigationController *)viewController popToRootViewController:NO];
}
}
每个视图控制器都应该有自己的表视图,所以我不知道你重新加载的目的是什么。