如何获得一个按钮来确定要转到哪个视图控制器?

Posted

技术标签:

【中文标题】如何获得一个按钮来确定要转到哪个视图控制器?【英文标题】:How can I get a button to determine which viewcontroller to go to? 【发布时间】:2014-04-18 18:17:48 【问题描述】:

我正在尝试使用 Xcode 获取用户类型输入的值并执行以下三件事之一:如果用户类型无效,它将停留在当前视图控制器上并告诉用户凭据无效,如果是valid 和 "admin" 会进入用户设置,如果是 "user" 或 null 会进入订单列表。

我已经构建了 if 语句,只是不确定如何指定要转到哪个视图控制器。

【问题讨论】:

你的问题太模糊了。您使用的是故事板还是 IB。你有导航控制器来推送新的视图控制器吗?您只想展示新的视图控制器吗? 【参考方案1】:

我不太明白你的问题,但你不能像这样简单地分配视图:

if(!error) 
   ViewController *viewcont = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
    [self presentViewController:viewcont animated:NO completion:nil];
 else 
 ViewController2 *viewcont2 = [[ViewController2 alloc]initWithNibName:@"ViewController2" bundle:nil];
    [self presentViewController:viewcont2 animated:NO completion:nil];

【讨论】:

【参考方案2】:

如果您使用的是导航控制器

if(!error) 
   ViewController *view1 = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
[self.navigationController pushViewController:view1 animated:YES];
 else 
 ViewController2 *view2 = [[ViewController2 alloc]initWithNibName:@"ViewController2" bundle:nil];
[self.navigationController pushViewController:view2 animated:YES];

否则使用这个

if(!error) 
   ViewController *view1 = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
    [self presentViewController:view1 animated:NO completion:nil];
 else 
 ViewController2 *view2 = [[ViewController2 alloc]initWithNibName:@"ViewController2" bundle:nil];
    [self presentViewController:view2 animated:NO completion:nil];

请记住:如果您的视图不是 xnib 文件,则此解决方案将不起作用,我的意思是如果您使用的是故事板

【讨论】:

以上是关于如何获得一个按钮来确定要转到哪个视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何强制返回按钮转到第一个视图控制器(swift)

如何在不发送错误的情况下使按钮转到另一个视图控制器?

如何确定当前视图控制器呈现的是哪个视图控制器? (苹果手机)

如何知道从另一个视图控制器中的 UICollectionViewController 按下了哪个按钮

使用单元格中的按钮转到详细视图控制器

iOS Accessibility - 控制哪个 UI 对象获得焦点