Ios 在另一个故事板swift中显示viewController

Ios 在另一个故事板swift中显示viewController,ios,objective-c,iphone,swift,Ios,Objective C,Iphone,Swift,我已经挣扎了一段时间了。我试图以模式显示viewController,但每次执行此操作时,都会出现以下错误: libswiftCore.dylib`swift_dynamicCastClassUnconditional: 0x10f7d57d0: pushq %rbp 0x10f7d57d1: movq %rsp, %rbp 0x10f7d57d4: testq %rdi, %rdi 0x10f7d57d7: je 0x10f7d580e ;

我已经挣扎了一段时间了。我试图以模式显示viewController,但每次执行此操作时,都会出现以下错误:

libswiftCore.dylib`swift_dynamicCastClassUnconditional:
0x10f7d57d0:  pushq  %rbp
0x10f7d57d1:  movq   %rsp, %rbp
0x10f7d57d4:  testq  %rdi, %rdi
0x10f7d57d7:  je     0x10f7d580e               ; swift_dynamicCastClassUnconditional + 62
0x10f7d57d9:  movabsq $-0x7fffffffffffffff, %rax
0x10f7d57e3:  testq  %rax, %rdi
0x10f7d57e6:  jne    0x10f7d580e               ; swift_dynamicCastClassUnconditional + 62
0x10f7d57e8:  movq   0xae741(%rip), %rax       ; swift::ISAMask
0x10f7d57ef:  andq   (%rdi), %rax
0x10f7d57f2:  nopw   %cs:(%rax,%rax)
0x10f7d5800:  cmpq   %rsi, %rax
0x10f7d5803:  je     0x10f7d581d               ; swift_dynamicCastClassUnconditional + 77
0x10f7d5805:  movq   0x8(%rax), %rax
0x10f7d5809:  testq  %rax, %rax
0x10f7d580c:  jne    0x10f7d5800               ; swift_dynamicCastClassUnconditional + 48
0x10f7d580e:  leaq   0x332fd(%rip), %rax       ; "Swift dynamic cast failed"
0x10f7d5815:  movq   %rax, 0xae5cc(%rip)       ; gCRAnnotations + 8
0x10f7d581c:  int3   
0x10f7d581d:  movq   %rdi, %rax
0x10f7d5820:  popq   %rbp
0x10f7d5821:  retq   
0x10f7d5822:  nopw   %cs:(%rax,%rax)
在下面的一行:

let showItemVc = showItemStoryboard.instantiateViewControllerWithIdentifier("ShowItemViewController") as ShowItemViewController
didSelectRowAtIndexPath 如果我改变一下就行了

as ShowItemViewController

但是我无法将值推送到ShowItemViewController,这里有什么问题

showItemViewController
如果要实例化一个
UINavigationController
,其中包含
ShowItemViewController
,则需要对该视图控制器的引用
UINavigationController
具有一个
topViewController
属性,该属性表示添加到其中的第一个子项。如果要在
ShowItemViewController
中填充数据,这是您需要的项目,它嵌入在导航控制器中

let showItemStoryboard = UIStoryboard(name: "ShowItemStoryboard", bundle: nil)
let showItemNavController = showItemStoryboard.instantiateViewControllerWithIdentifier("ShowItemViewController") as UINavigationController
let showItemVC = showItemNavController.topViewController as ShowItemViewController
// Set the properties in your showItemVC
presentViewController(showItemNavController, animated: true, completion: nil)

您还应该通过执行
if let XXX=YYY as,检查
let
是否实际成功?ZZZ{}
在继续之前跳舞,否则会出现运行时错误。

如果实例化的
UINavigationController
中包含您的
ShowItemViewController
,则需要对该视图控制器的引用
UINavigationController
具有一个
topViewController
属性,该属性表示添加到其中的第一个子项。如果要在
ShowItemViewController
中填充数据,这是您需要的项目,它嵌入在导航控制器中

let showItemStoryboard = UIStoryboard(name: "ShowItemStoryboard", bundle: nil)
let showItemNavController = showItemStoryboard.instantiateViewControllerWithIdentifier("ShowItemViewController") as UINavigationController
let showItemVC = showItemNavController.topViewController as ShowItemViewController
// Set the properties in your showItemVC
presentViewController(showItemNavController, animated: true, completion: nil)

您还应该通过执行
if let XXX=YYY as,检查
let
是否实际成功?ZZZ{}
在继续之前跳舞,否则会出现运行时错误。

是否为情节提要场景中的视图控制器设置了自定义类?请发布ShowItemViewController的标题。showItemVc的实例化似乎无法将视图控制器强制转换为ShowItemViewController类。您确定序列图像板中标识符为“ShowItemViewController”的视图控制器是ShowItemViewController吗?它不是(比方说)一个导航视图控制器,它的第一个子项是ShowItemViewController?这在过去一直困扰着我……可能是因为我展示的导航控制器具有标识符“ShowItemViewController”,而不是直接显示ShowItemViewController?在这种情况下,如何在情节提要场景中设置视图控制器的自定义类?请发布ShowItemViewControlleri的标题。showItemVc的实例化似乎无法将视图控制器强制转换为ShowItemViewController类。您确定序列图像板中标识符为“ShowItemViewController”的视图控制器是ShowItemViewController吗?它不是(比方说)一个导航视图控制器,它的第一个子项是ShowItemViewController?这在过去一直困扰着我……可能是因为我展示的导航控制器具有标识符“ShowItemViewController”,而不是直接显示ShowItemViewController?在这种情况下,我如何解决它仅指iOS 13.0“如果可用”。。。不适用于iOS 10.0或更低版本。仅适用于iOS 13.0“如果可用”。。。不适用于iOS 10.0或更低版本。
import UIKit

class ShowItemViewController: UIViewController, UITableViewDelegate {

    @IBOutlet var pageControl: UIPageControl?
    @IBOutlet var tableView:UITableView?
    var userId: NSString?
    var itemId: NSString?

    override func viewDidLoad() {
        super.viewDidLoad()

        var no = (UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("itemCancel:")))

        self.navigationItem.leftBarButtonItem = no


        var hiddenButton = (UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Add, target: nil, action: nil))

        self.navigationItem.rightBarButtonItem = hiddenButton


        println(userId)


        self.tableView?.registerNib(UINib(nibName: "ImagePageViewCell", bundle: nil), forCellReuseIdentifier: "ImagePageViewCell")

        pageControl = UIPageControl()
        pageControl?.frame = CGRectZero
        pageControl?.currentPage = 0
        pageControl?.numberOfPages = 3
        pageControl?.tintColor = UIColor.whiteColor()
        pageControl?.userInteractionEnabled = false
        self.navigationItem.titleView = pageControl?




    }

}
let showItemStoryboard = UIStoryboard(name: "ShowItemStoryboard", bundle: nil)
let showItemNavController = showItemStoryboard.instantiateViewControllerWithIdentifier("ShowItemViewController") as UINavigationController
let showItemVC = showItemNavController.topViewController as ShowItemViewController
// Set the properties in your showItemVC
presentViewController(showItemNavController, animated: true, completion: nil)