项目演示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
Beberapa soalan
Anda perlu mengetahui lebih lanjut tentang custom contain viewcontroller Di sini anda akan faham bahawa self.navigationController tidak boleh mendapatkan navigationController dan harus diubah suai kepada self.parentViewController.navigationController
Kemudian apabila menambahSubview, mainVC memerlukan addChildViewController. Sudah dipanggil willMoveToParentViewController dan kaedah lain yang berkaitan
Salah satu keperluan besar adalah mengenai pengurusan n viewcontrollers Bagaimana untuk memastikan prestasi Ia perlu dibuat Boleh Digunakan Semula dan tidak boleh dimuatkan sekaligus
MainVC perlu dikomponenkan Takrifkan pengawal paparan untuk menguruskan viewController tatal di bawah (optimumkan selepas pelaksanaan)
Terdapat banyak tunjuk cara di Internet yang meniru NetEase News Anda boleh belajar daripadanya
Jika anda tidak melangkau pas.
1.self.navigationController boleh kosong, boleh print. Jika ia kosong, pengawal anda bukan lagi navigationController. Jadi saya tidak boleh melompat.
-(void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath )indexPath tidak memanggil
Pada halaman "terbaru", klik self.navigationController dalam sel, iaitu pengawal di mana paparan jadual terletak, bukan mainVC Anda perlu mendapatkan pengawal navigasi utama dan melompat