ios - 关于UIscrollView里面放tableView,push跳转不了的问题.
大家讲道理
大家讲道理 2017-04-18 09:05:55
0
3
363

项目演示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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(3)
迷茫

Beberapa soalan

  1. 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

  2. Salah satu keperluan besar adalah mengenai pengurusan n viewcontrollers Bagaimana untuk memastikan prestasi Ia perlu dibuat Boleh Digunakan Semula dan tidak boleh dimuatkan sekaligus

  3. MainVC perlu dikomponenkan Takrifkan pengawal paparan untuk menguruskan viewController tatal di bawah (optimumkan selepas pelaksanaan)

  4. 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.

  1. -(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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan