从一个故事板到一个不同的故事板?

Bro*_*Eye 29 xcode storyboard ios segue

我在一个故事板上有太多的观点,导致它运行得很慢.我被告知这个问题的解决方案是将一个故事板分成多个故事板.谁能告诉我如何通过按钮从故事板1的视图到故事板2中的视图?

Nyc*_*cen 33

使用Xcode 7,您可以选择Storyboard References

在此输入图像描述

并设置目标故事板和控制器

在此输入图像描述


小智 26

在Swift(iOS 8.1)中,这非常简单:

  var storyboard: UIStoryboard = UIStoryboard(name: "Another", bundle: nil)
  var vc = storyboard.instantiateViewControllerWithIdentifier("NextViewController") as AnotherViewController
  self.showViewController(vc, sender: self)
Run Code Online (Sandbox Code Playgroud)

Swift 3更新:

let storyboard: UIStoryboard = UIStoryboard(name: "Another", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "NextViewController") as! AnotherViewController
self.show(vc, sender: self)
Run Code Online (Sandbox Code Playgroud)


Noc*_*oss 9

另一种使用segues(iOS SDK 6.0+)的解决方案,它可以按目的分隔代码并为自定义留出空间:

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
    //check/validate/abort segue
    return YES;
}//optional

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    //sender - segue/destination related preparations/data transfer
}

#pragma mark - Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UIViewController *destination = [[UIStoryboard storyboardWithName:@"SomeStoryboard" bundle:nil] instantiateInitialViewController];

    UIStoryboardSegue *segue = [UIStoryboardSegue segueWithIdentifier:@"identifier" source:self destination:destination performHandler:^(void) {
        //view transition/animation
        [self.navigationController pushViewController:destination animated:YES];
    }];

    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
    [self shouldPerformSegueWithIdentifier:segue.identifier sender:cell];//optional
    [self prepareForSegue:segue sender:cell];

    [segue perform];
}
Run Code Online (Sandbox Code Playgroud)

注意: UITableViewCell *cell用于sender保持默认 TableViewController响应行为.


Bro*_*Eye 6

我尝试了所有我读过但仍然没有成功的东西.我已经设法使用Rob Browns Storyboard Link使用 它很容易实现并且工作得非常快


Udi*_*wal 5

最后,XCode 7添加了此功能,您可以使用界面构建器在两个不同的故事板中区分视图控制器.直到现在,我们必须以编程方式执行此操作.