ios - 为performSegueWithIdentifier()设置 Storyboard

标签 ios swift storyboard segue

我在我的应用程序页面上工作,用户从 UITableView 的 3 个单元格中选择一个,然后被带到相应的 2 个 UIViewControllers 中的 1 个,该 UIViewControllers 使用有关所选单元格的详细信息填充页面。我正在尝试准备 Storyboard以使用“performSegueWithIdentifier()”执行此操作。我通过使用“show”方法将父 View 的 View Controller 与每个 subview 的 View 连接起来进行了转场。然后我将其添加到我的父 View Controller 中:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let appDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
    if indexPath.row == 0 {
        appDelegate.selected = 1
        self.performSegueWithIdentifier("GraphID", sender: self)
    }
    if indexPath.row == 1 {
        appDelegate.selected = 2
        self.performSegueWithIdentifier("DistanceID", sender: self)
    }
    if indexPath.row == 2 {
        appDelegate.selected = 3
        self.performSegueWithIdentifier("GraphID", sender: self)
    }    
}

enter image description here

当我启动我的应用程序并按下任何单元格时,它会因 NSException 而崩溃:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver     (<FlightTracker.StatusViewController: 0x7fe4faa5c8c0>) has no segue with identifier 'DistanceID''
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000109446f35 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x00000001090dfbb7 objc_exception_throw + 45
    2   UIKit                               0x0000000109b9dd3b -[UIViewController     shouldPerformSegueWithIdentifier:sender:] + 0
    3   UIKit                               0x00000001174dec78 -[UIViewControllerAccessibility     performSegueWithIdentifier:sender:] + 39
    4   FlightTracker                       0x0000000106f977e2  _TFC13FlightTracker20StatusViewController9tableViewfS0_FTCSo11UITableView23didSelectRowAtIndexPathCS o11NSIndexPath_T_ + 2530
    5   FlightTracker                       0x0000000106f97cef _TToFC13FlightTracker20StatusViewController9tableViewfS0_FTCSo11UITableView23didSelectRowAtIndexPathCSo11NSIndexPath_T_ + 79
    6   UIKit                               0x0000000109b5e393 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 1293
    7   UIKit                               0x0000000109b5e4d4 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 219
    8   UIKit                               0x0000000109a99331 _applyBlockToCFArrayCopiedToStack + 314
    9   UIKit                               0x0000000109a991ab _afterCACommitHandler + 516
    10  CoreFoundation                      0x000000010937bdc7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    11  CoreFoundation                      0x000000010937bd20 __CFRunLoopDoObservers + 368
    12  CoreFoundation                      0x0000000109371b53 __CFRunLoopRun + 1123
    13  CoreFoundation                      0x0000000109371486 CFRunLoopRunSpecific + 470
    14  GraphicsServices                    0x000000010b1ba9f0 GSEventRunModal + 161
    15  UIKit                               0x0000000109a76420 UIApplicationMain + 1282
    16  FlightTracker                       0x0000000106fac07e top_level_code + 78
    17  FlightTracker                       0x0000000106fac0ba main + 42
    18  libdyld.dylib                       0x000000010bdc5145 start + 1
    19  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

我是否已正确连接 Storyboard以使用此方法?

最佳答案

根据您发布的照片​​,您正在设置 StoryboardID 调用 DistanceID。这与我们正在谈论的 segue identifier 完全不同。

因此,选择 viewController 之间的 segue 并将标识符更改为 DistanceID。这是正确的标识符。

关于ios - 为performSegueWithIdentifier()设置 Storyboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27809993/

相关文章:

IOS MDM 服务器 IOS App OTA 部署

swift - 来自对象数组的 UITableView 部分(Swift)

ios - 访问嵌入在 UIViewController 中的 UITabBarController

ios - ifndef,常量的定义和直接赋值

ios - 如何使多次启​​动的 NSTimer 失效

ios - 用于 GetUserAvailability 的 Office365 API

ios - 如何知道 textView 滚动到底部?

ios - startMonitoringSignificantLocationChange 不会调用 didUpdateLocations

ios5 - 在显示标签栏 Controller 之前启动登录 View

IOS/ Storyboard/自动布局 : Center round button under horizontal bar