项目演示GIF图:
http://ww1.sinaimg.cn/large/70421ae5jw1f43m036b22g20b50iknpd.gif
应该怎么做,我知道要这个项目要用2个scrollView.
"最新"这个页面是在stroyboard里面创建的视图,
"视频"是用代码创建再用通知的方法实现点击cell跳转新页面的.
"最新"页面点击cell的跳转代码:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
latestWebView *webView = [[latestWebView alloc] init];
webView.hidesBottomBarWhenPushed = YES;
webView.urlDetial = self.urlAry[indexPath.row];
[self.navigationController pushViewController:webView animated:YES];
NSLog(@"navigationController: %@",self.navigationController);
}
"视频"页面的点击cell跳转代码:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[[NSNotificationCenter defaultCenter] postNotificationName:@"noHideen" object:nil];
}
下面是在AppDelegate里面创建的主视图(MainViewController):
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
MainViewController * mainvc = [[MainViewController alloc] init];
UINavigationController * nvc = [[UINavigationController alloc] initWithRootViewController:mainvc];
self.window.rootViewController = nvc;
[self.window makeKeyAndVisible];
MainViewController的scrollView里面添加的各个视图:
[self.vcScrollview addSubview:self.nearbyVC.view];
[self.vcScrollview addSubview:self.latestVC.view];
[self.vcScrollview addSubview:self.videoVC.view];
[self.vcScrollview addSubview:self.collectionVC.view];
这样做以后发现点击tableView的Cell的时候push不了新页面(打印没有navigation),要用通知的方法才能实现push跳转:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tiaozhuan:) name:@"tiao" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tiaozhuan:) name:@"noHideen" object:nil];
(void)tiaozhuan:(NSNotification *)notifiction
{
NSLog(@"%@",notifiction.object);
if (notifiction.object == nil) {
self.barScrollview.hidden = NO;
}
else{
testViewController * tes = [[testViewController alloc] init];
self.barScrollview.hidden = YES;
[self.navigationController pushViewController:tes animated:YES];
}
}
1:我如果一定要实现点击cell以后push一个新页面. 是不是只能用通知的方法去实现?
2:不然的话只能在MainViewController里面创建几个tableView了(这样MainViewController肯定会很臃肿).
3:这个项目真的很简单,被困扰了一个星期,作为初学者很受打击,麻烦各位帮帮忙,或者您有更好的办法也请告知,谢谢.
描述得有点乱,万分感谢.需要源码的加我QQ 1404565175
Quelques questions
Vous devez en savoir plus sur le viewcontroller contenant personnalisé. Ici, vous comprendrez que self.navigationController ne peut pas obtenir navigationController et doit être modifié en self.parentViewController.navigationController
Ensuite, lors de l'ajout de Subview, mainVC a besoin de addChildViewController. Déjà appelé willMoveToParentViewController et autres méthodes associées
L'un des grands besoins concerne la gestion de n viewcontrollers. Comment garantir les performances Il doit être rendu réutilisable et ne peut pas être chargé en une seule fois
MainVC doit être composant. Définir un viewcontroller contenant pour gérer le viewController défilant ci-dessous (optimiser après la mise en œuvre)
Il existe de nombreuses démos sur Internet qui imitent NetEase News. Vous pouvez en tirer des leçons
Si vous ne sautez pas le pass.
1.self.navigationController peut être vide, vous pouvez l'imprimer. S'il est vide, votre contrôleur n'est plus un navigationController. Donc je ne peux pas sauter.
-(void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath )indexPath ;
Sur la page "dernière", cliquez sur self.navigationController dans la cellule, qui est le contrôleur où se trouve la tableview, pas mainVC. Vous devez obtenir le contrôleur de navigation principal et sauter
.