• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iphone - 从一个 ViewController 导航到另一个

[复制链接]
菜鸟教程小白 发表于 2022-12-13 16:51:54 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我的 Storyboard中有这个设计:

enter image description here

如您所见,中间的 ViewController 连接到一个导航 Controller (我只是让导航栏不可见)。在这个中间页面中,我以编程方式添加了所有控件 (using Parse mobile platform login wizard)。

问题是我想在登录成功后导航到第三页。

- (void)logInViewControllerPFLogInViewController *)logInController didLogInUserPFUser *)user {
    [self dismissModalViewControllerAnimated:YES];
    ViewController2 *viewController = [[[ViewController2 alloc] init] autorelease];
    [self.navigationController pushViewController:viewController animated:YES];
    printf("%s", [@"Ali" UTF8String]);
}

消息将被打印,但导航失败。你能帮我吗?也许我需要在 Storyboard中修复一些东西。



Best Answer-推荐答案


我不确定您是否应该发送 dismissModalViewControllerAnimated: 消息。您是否在登录 View Controller 之上以模态方式呈现另一个 View Controller ?

无论如何,当您在 Storyboard 中配置了 View Controller 时,您无法使用 allocinit 创建 View Controller 。您需要询问 Storyboard 来创建它。有几种方法可以做到这一点。

一种方式

让 Storyboard 创建您的 ViewController2 的一种方法是在 Storyboard 中进行推送。

  1. 打开您的 Storyboard。
  2. Control-从登录 View Controller 拖动到 ViewController2
  3. 选择“推送”segue 类型。
  4. 点击转场。
  5. 选择 View > 实用工具 > 显示属性检查器。
  6. 在 Attributes Inspector(窗口右侧)中,将 segue 标识符设置为“didLogIn”。

要执行转场,请执行以下操作:

- (void)logInViewControllerPFLogInViewController *)logInController didLogInUserPFUser *)user {
    [self dismissModalViewControllerAnimated:YES];
    [self performSegueWithIdentifier"didLogIn" sender:self];
}

另一种方式

另一种让 Storyboard创建您的 ViewController2 的方法是给它一个 Storyboard ID 并要求 Storyboard按 ID 实例化 View Controller 。然后就可以推送 View Controller 了。

在您可以要求 Storyboard 创建它之前,您必须为 Storyboard 中的 ViewController2 实例提供一个“ Storyboard ID”。

  1. 打开您的 Storyboard。
  2. 选择 ViewController2 实例。
  3. 选择 View > 实用程序 > 显示身份检查器。
  4. 在 Identity Inspector(窗口右侧)中,输入“viewController2”。案例很重要!

然后,在您的代码中,要求 Storyboard 实例化 viewController2:

- (void)logInViewControllerPFLogInViewController *)logInController didLogInUserPFUser *)user {
    [self dismissModalViewControllerAnimated:YES]; // Should this be here?
    ViewController2 *viewController = [[[ViewController2 alloc] init] autorelease];
    [self.navigationController pushViewController:viewController animated:YES];
}

关于iphone - 从一个 ViewController 导航到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12827147/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap