【问题标题】:Navigation controller can not push view controller in iOS 7 when project using autolayout当项目使用自动布局时,导航控制器无法在 iOS 7 中推送视图控制器
【发布时间】:2015-07-01 08:24:30
【问题描述】:

现在在我的项目中,我遇到了自动布局的问题。

在 iOS 8 中:它仍然运行良好。

但是在 iOS 7 中:它推送到视图并且无法加载视图的内容。在导航中,我看到它更改了标题。我猜自动布局是错误的原因。

代码:

MyViewController * viewcontroller = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];

[employeeListVC.view updateConstraintsIfNeeded];
[self.navigationController pushViewController:employeeListVC animated:YES];

请帮我解决它。非常感谢。

【问题讨论】:

  • 检查你的控制器是否嵌入到导航控制器中。
  • 我检查了导航控制器。它不是零

标签: ios objective-c iphone ios7


【解决方案1】:
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main"
                                                         bundle: nil];
MyViewController *controller = [mainStoryboard instantiateViewControllerWithIdentifier:@"MyViewController"];
[self.navigationController pushViewController:controller animated:YES];

【讨论】:

    【解决方案2】:

    我猜自动布局不是原因。一种可能的情况是MyViewController 未嵌入UINavigationController

    检查self.navigationController 是否为nil

    来自控制台的错误消息将很有帮助(如果存在)。

    【讨论】:

    • 没有错误,只是无法加载视图的内容。 self.navigationController 不是nil 这是显示日志po self.navigationController <UINavigationController: 0x7fcd5f61bf80>
    【解决方案3】:

    使用 Segue 代替导航控制器。根据我的个人意见,那个更好。

    步骤: 1. 嵌入你的视图控制器[初始视图控制器必须嵌入导航控制器]

    1. 为你的 segue 提供一个名称标识符。

    2. 在您的活动中编写代码

      [self performSegueWithIdentifier:@"SegueBlockedContacts" sender:self];

    3. 实现 prepareForSegue 方法。

      -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

      if ([segue.identifier isEqualToString:@"SegueBlockedContacts"]) {
      
          BlockedContactTableVC *blockedContactVC = segue.destinationViewController;
          [blockedContactVC.blockedContacts removeAllObjects];
          blockedContactVC.blockedContacts = blockedContacts;
          blockedContactVC.myDelegate = self;
      }
      

      }

    就是这样。

    【讨论】:

    • 我在视图控制器的日志框架上进行了测试,我看到它仍然正常工作,导航正确,视图框架正确。但是,由表格视图组成的内容视图可以不显示。
    猜你喜欢
    • 2014-01-11
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多