【问题标题】:How to move from a view controller into other view controller in storyboard programmatically如何以编程方式从视图控制器移动到情节提要中的其他视图控制器
【发布时间】:2012-11-25 12:22:41
【问题描述】:

我在情节提要上创建了两个视图控制器,我想以编程方式从一个视图控制器转到另一个视图控制器。我在一个视图控制器中创建了一个按钮。我知道从一个视图控制器到另一个视图控制器很容易,只需将按钮从一个视图控制器拖到第二个视图控制器。但我想以编程方式进行,因为我在按钮中有 if 和 else 条件,如果条件为真,那么我想将它移动到下一个视图控制器这是代码。

-(IBAction)loadView:(id)sender {
    if([username.text isEqualToString:@"adnan"] && [password.text isEqualToString:@"bhatti123"] )
    {
        // here I want to write that code which reach me to second view controller which I implement on storyboard 

    }   
    else 
    {

    }
}

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

    将线从第一个视图控制器拖到第二个并设置segue的标识符:

    .m 文件中:

    if([username.text isEqualToString:@"adnan"] && [password.text isEqualToString:@"bhatti123"] )
    {
        [self performSegueWithIdentifier:@"nextView" sender:sender];
    }   
    else 
    {
    
    }
    

    【讨论】:

    • 你是个好人,你知道我想要什么,爱你,非常感谢
    • 如何使用此方法将值传递给下一个视图控制器?
    • @Aniruddha,您需要在第一个视图控制器中写入方法prepareForSegue:sender: 并获取destinationViewController,它是下一个视图控制器的实例。您可以访问其属性并传递值。 (Example)。
    • 感谢您的回复:)。我知道[performSegue.....] 会反过来调用prepareforSegue....
    【解决方案2】:
    -(IBAction)loadView:(id)sender
    {
          if([username.text isEqualToString:@"adnan"] && [password.text isEqualToString:@"bhatti123"] )
          {
             // here i want to write that code which reach me to second view controller which i implement on storyboard 
                SecondViewController *objSecondViewController = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
                [self.navigationController pushViewController:objSecondViewController animated:YES];
                [objSecondViewController release];
         }   
         else 
         { 
            //write your else part code here
         }
    }
    

    更新:

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil]; 
    SecondViewController *objSecondViewController = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
    [self.navigationController pushViewController:objSecondViewController animated:YES];
    

    【讨论】:

    • 但是我怎么知道在 Storyboard 上这是 NIB 文件在 Storyboard 上有多个视图控制器然后我如何用 INITWITHNIBNAME 初始化 SECONDVIEWCONTROLLER
    • 然后简单地设置类并推送或呈现它.. 当你创建 nib 时,你给 nib 命名对吗??
    • @AdnanQadir 也看到了这个答案伙计stackoverflow.com/questions/7889510/… :)
    • 我需要为storyboard secondviewcontroller dude 定义属性吗
    • @AdnanQadir 请修复您的大写锁定键。
    【解决方案3】:
    SecondViewController *secondviewController = [[SecondViewController alloc] init];
    [self presentviewController:secondviewController animation:YES completion:nil];
    

    希望这会有所帮助...

    【讨论】:

    • 但是我怎么知道在 Storyboard 上这是 NIB 文件在 Storyboard 上有多个视图控制器然后我如何用 INITWITHNIBNAME 初始化 SECONDVIEWCONTROLLER
    • 亲爱的,故事板上有不止一个视图控制器我不想使用对象创建新的 uiview
    猜你喜欢
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 2019-12-04
    相关资源
    最近更新 更多