Ios 无法移动到其他视图控制器

Ios 无法移动到其他视图控制器,ios,uiviewcontroller,Ios,Uiviewcontroller,我正在尝试从第一视图控制器->第二视图控制器移动。然而,似乎什么都没有发生 它主要来自一个登录页面,所以我不需要在成功登录后返回该页面。我现在试着按一下按钮,只是想检查一下 我有两门课 签名页 选项屏幕 我需要从1>2开始 内部签名页 #import "optionsScreen.h" - (IBAction)moveToNext:(id)sender { optionsScreen *aSecondPageController = [[optionsScreen al

我正在尝试从第一视图控制器->第二视图控制器移动。然而,似乎什么都没有发生

它主要来自一个登录页面,所以我不需要在成功登录后返回该页面。我现在试着按一下按钮,只是想检查一下

我有两门课

  • 签名页
  • 选项屏幕
  • 我需要从1>2开始


    内部签名页

    #import "optionsScreen.h"
    
    - (IBAction)moveToNext:(id)sender {
    
    
        optionsScreen *aSecondPageController =
        [[optionsScreen  alloc]
         initWithNibName:@"optionsScreen"
         bundle:nil];
    
        [self.navigationController pushViewController:aSecondPageController animated:YES];
    
    //    [aSecondPageController release];
    
    
    }
    

    故事板截图

    解决方案:

    - (IBAction)moveToNext:(id)sender {
    
    
        NSString * storyboardName = @"Main_iPhone";
    
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
        UIViewController * vc = [storyboard instantiateViewControllerWithIdentifier:@"optionsScreen"];
        [self presentViewController:vc animated:YES completion:nil];
    
    }
    

    在情节提要中添加导航视图控制器。作为根视图控制器-默认情况下可能是表视图控制器,所以请删除它-设置第一视图控制器。添加导航控制器您可以将任意多个视图控制器推送到导航堆栈中。

    我认为您要做的是以模态方式呈现视图控制器,而不是将其推送到堆栈中(该堆栈不存在)。相反,你应该这样做。默认情况下,这不会显示“后退”按钮,因此您必须手动添加一个按钮:

    optionsScreen *aSecondPageController = [[optionsScreen alloc] initWithNibName:@"optionsScreen" bundle:nil];
    
    [self presentViewController:aSecondPageController animated:YES completion:nil];
    
    要返回,在您的
    选项屏幕
    视图控制器中,您需要某种返回按钮,对吗?因此,您可以在viewDidLoad中执行此操作:

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(backPressed:);
    
    然后您必须创建一个名为
    backPressed:

    -(void)backPressed:(id)sender {
    
        [self dismissViewControllerAnimated:YES completion:nil];
    }
    

    编辑:事实证明,您正在尝试执行我上面解释的操作。我将留下导航控制器位供将来参考

    如果您试图使用导航控制器来按下选项,默认情况下会给您一个后退按钮,那么首先,在故事板中,单击您的登录视图控制器,然后在顶部的菜单栏上转到
    Editor>Embed in…>导航控制器
    。然后,在视图控制器切换方法中,可以执行以前尝试过的操作

    optionsScreen *aSecondPageController = [[optionsScreen alloc] initWithNibName:@"optionsScreen" bundle:nil];
    
    [self.navigationController pushViewController:aSecondPageController animated:YES];
    

    你有什么错误吗?你确定你的按钮已链接(aka is
    moveToNext:
    正在被调用?没有错误,它只是不起任何作用。向该方法添加NSLog('called');并确保该方法正在被调用。你的第一视图控制器需要在导航控制器中。啊哈,我应该检查谷歌驱动器图像…你赢了@rmaddy:)