ChavezChen / CWLateralSlide

One line of code to integrate 0 coupling side drawer!一行代码集成0耦合侧滑抽屉!
MIT License
1.28k stars 201 forks source link

push不了 #26

Closed pingcoder0505 closed 6 years ago

pingcoder0505 commented 6 years ago

我push告我This no UINavigationController... 但是我alloc一个UINavigationController再用cw_pushViewController push的话还是push不了,怎么解决?

ChavezChen commented 6 years ago

你的根控制器的当前显示的viewcontroller没有UINavigationController。。。你用cw_pushViewController这个方法 是找到根控制器当前选中的导航栏去push的。没有导航控制器没法push,你可以使用present。或者如果添加了一个导航栏是添加在侧滑出来的抽屉上面的,那你看看这个里面的解决方式是否符合你:https://github.com/ChavezChen/CWLateralSlide/issues/19

pingcoder0505 commented 6 years ago

void(^loginOutBlock)() = ^{

        BSLoginViewController *login = [[BSLoginViewController alloc] init];

        [self cw_pushViewController:login];
    };

        [BSHTTPLogin POSTXXXData:dic finished:^(id responseObject) {

            loginOutBlock();

        } fail:^(NSInteger code, NSString *error) {

            loginOutBlock();

        }];
        这样不行,可是在-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath这个方法里是可以的,而且还是有UINavigationController的
ChavezChen commented 6 years ago

看看是不是在子线程调用的

pingcoder0505 commented 6 years ago

我放了主线程也不行,都会提示This no UINavigationController...这个!但是这个确实应该是有吧?或者没有的话我怎么给他加啊??我试着加了也不管用

pingcoder0505 commented 6 years ago

要是没有的话那我didSelectRowAtIndexPath这个方法也不行啊! -(void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath )indexPath { // 测试 // UIViewController *vc = [[UIViewController alloc]init]; // vc.view.backgroundColor = [UIColor redColor]; // [self cw_pushViewController:vc]; } 可是这样写可以

ChavezChen commented 6 years ago

前面提供的两个都是在同一个控制器测试的嘛?提供一个测试demo 或者加我QQ或者微信详聊吧(543438338)。这里不太好定位问题哦。

pingcoder0505 commented 6 years ago

ok了,我又在你的里边加了个方法,如果传的是viewcontroller的话我直接把UINavigationController这个传过去了!- (void)cw_pushViewController:(UIViewController *)viewController{

[self cw_pushWithNavigationVC:nil ViewController:viewController];

}

}

ChavezChen commented 6 years ago

好的👍