我在另一个名为ViewController的视图中使用UITableView作为childView,并且在UITableView中,我希望该单元格可以单击并导航到destinationView而不使用storyBoard,所以我在didSelectRowAtIndexPath上实现了此代码
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"helloWorld!");
DescriptionViewController *desc = [[DescriptionViewController alloc]
initWithNibName:@"DescriptionViewController" bundle:nil];
[self.navigationController pushViewController:desc animated:YES];
}
答案 0 :(得分:0)
正确地您没有导航
[self.navigationController pushViewController:desc animated:YES];
因此请确保当前VC嵌入在导航控制器中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
MainViewController *main = [[MainViewController alloc ] initWithNibName:@"MainViewController" bundle:nil];
UINavigationController*nav = [[UINavigationController alloc] initWithRootViewController:main];
self.window.rootViewController = nav;
return YES;
}
如果您甚至不使用xibs,请像这样加载vc
DescriptionViewController*desc = [[DescriptionViewController alloc] init];
要替换:
[UIApplication sharedApplication].keyWindow.rootViewController = desc;
答案 1 :(得分:0)
检查您的navigationController
是否不为零,并实例化要推送的视图控制器对象。
1。检查导航(从情节提要中):
2。实例化视图控制器:
DescriptionViewController *desc = [self.storyboard instantiateViewControllerWithIdentifier:@"DescriptionViewController"];
[self.navigationController pushViewController:desc animated:YES];
如果您的项目中有多个故事板,则可以使用
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
DescriptionViewController *desc = [sb instantiateViewControllerWithIdentifier:@"DescriptionViewController"];
[self.navigationController pushViewController:desc animated:YES];
3。如果您的视图不在情节提要上
只需初始化并推送到DescriptionViewController,
DescriptionViewController *desc = [[DescriptionViewController alloc] init];
[self.navigationController pushViewController:desc animated:YES];
并在viewDidLoad
的{{1}}中添加要加载的白色视图。
DescriptionViewController
答案 2 :(得分:0)
如果您的视图控制器嵌入在
[self.navigationController pushViewController:desc animated:YES];
中,则下面的代码将起作用:[self presentViewController:desc animated:YES completion:nil];
否则,您将必须像下面这样模态显示视图控制器:
[2018-09-10 11:40:50] production.ERROR: Detected invalid UTF-8 for fieldname "shipping_city": München [2018-09-10 11:41:03] production.ERROR: Detected invalid UTF-8 for fieldname "_id": Ã$zjmêá¹ëmy× [2018-09-10 11:48:16] production.ERROR: Method [error] does not exist on [App\Http\Controllers\PaymentController]. {"userId":"5b0d2b6f12236ca36a2282ed","exception":"[object] (BadMethodCallException(code: 0): Method [error] does not exist on [App\\Http\\Controllers\\PaymentController]. at /var/www/vhosts/cabin-holiday.frontend/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:68)
答案 3 :(得分:0)
如果您使用的是堆栈结构,即父控制器已嵌入UINavigationController内,请尝试以下代码片段:
DescriptionViewController *desc = [[DescriptionViewController alloc]
initWithNibName:NSStringFromClass([DescriptionViewController class]) bundle:nil];
[self.navigationController pushViewController:desc animated:YES];
如果要模态显示DescriptionViewController并向其中添加导航控制器,则以下代码段将很有用
DescriptionViewController *desc = [[DescriptionViewController alloc]
initWithNibName:NSStringFromClass([DescriptionViewController class]) bundle:nil];
UINavigationController *navCtr = [[UINavigationController alloc] initWithRootViewController: desc];
[self presentViewController:navCtr animated:YES completion:nil];