这是XIB的UIView文件的所有者

import UIKit

class sideBarContent: UIView  {

@IBOutlet weak var userName: UILabel!
@IBOutlet var sideBarContentView: UIView!
let mapviewcontroller = MapViewController()

@IBAction func userProfile(_ sender: UIButton) {

    mapviewcontroller.performSegueFromView(stringFromView: "userprofile")
}

而在我的UIviewController中

class MapViewController: UIViewController
{
    func performSegueFromView(stringFromView:String){
    performSegue(withIdentifier: "\(stringFromView)", sender: nil)
    }
}

它说我的segue标识符不存在,请帮助,我很迷路。 而且我也无法在UIView中执行segue,我也尝试使用情节提要ID方法,但是目前(vc,动画:true,完成:nil)没有显示。

#1楼 票数:0

首先,我认为您不应该从视图访问视图控制器。 最好在视图控制器中而不是在视图控制器中对控制器逻辑建模。

也就是说,您可以使用委托模式来实现您的功能。

import UIKit

class SideBarContent: UIView  {

    @IBOutlet weak var userName: UILabel!
    @IBOutlet var sideBarContentView: UIView!

    let delegate: SideBarContentDelegate? = nil

    @IBAction func userProfile(_ sender: UIButton) {
        self.delegate?.performSegueFromView(withIdentifier: "userprofile")
    }
}

protocol SideBarContentDelegate {
    func performSegueFromView(withIdentifier identifier: String)
}

class MapViewController: UIViewController, SideBarContentDelegate {

    @IBOutlet private weak var sidebarView: SideBarContent!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.sidebarView.delegate = self
    }

    func performSegueFromView(withIdentifier identifier: String) {
        self.performSegue(withIdentifier: identifier, sender: nil)
    }
}

更多信息: https : //stackoverflow.com/a/1340470/2603900

  ask by Yuan translate from so

未解决问题?本站智能推荐:

2回复

Swift-添加一个不与当前Storyboard的视图重叠的UIView

我正在尝试在我的绘图应用程序上完成以下任务: 我在.xib文件中设计了一个自定义UIView,该文件仅包含UIView中的“关闭”按钮。 默认情况下,我不希望我的应用程序加载此UIView。 我只希望在按下应用程序主视图上的按钮时加载它。 弹出视图后,我仍然希望能够在我的应用程序上访问
1回复

在视图控制器中使用自定义uiview

我正在尝试使用 xib 文件中的自定义 uiview。 我是初学者,不知道从哪里开始。 到目前为止我有这个,但我不知道我应该将我的占位符视图设置为编辑:完整视图控制器:
3回复

类型'UIView'的值没有成员'present'-如何调用'present'?[重复]

这个问题已经在这里有了答案: iOS,从视图获取指向控制器的指针 5回答 我有一个uiview文件,我将其嵌入到tableview标头中 (TopHeader类:UIView,UICollectionViewDelegate,UICollectionViewDataSour
2回复

在xib文件中加载View控制器

我想知道是否可以在Xib文件的这两个视图之间进行某种区分。 主视图将加载到情节提要中的滚动视图中。 。 (因此,如果我点击Bewerken(edit),我将被推送到右侧的视图控制器) 谢谢!
1回复

使用Xib将UIView添加到UIViewController

这是我想做的事情: 我有一个AViewController ,它是AViewController ,然后在屏幕的一半处添加一个UIView ,将这个视图连接到B-UIView,并且B-UIView有自己的xib进行设计。 换句话说,我有一个视图控制器,它的视图变成了“主视图”,因为我向
2回复

将XIB中定义的UIView加载到UIView中

按照此处提供的帖子,我尝试将XIB文件中定义的视图加载到当前正在显示的视图中。 基本上,我想要做的是当用户点击按钮时用不同的视图替换中间视图(见下面的屏幕截图)。 这是我想加载到中间视图的简单视图: 这是ViewController的源代码: ViewController.h #i
2回复

xib指定的位置在UIView负载上移动?

我有几个视图控制器,我希望所有人共享一个标题状态栏。 此标题视图显示我的应用程序中某些内容的状态。 我使用IB在其自己的xib中布置标题视图的内容,然后还使用IB布局视图控制器,在以编程方式加载标题时在视图控制器的xib中添加了一个占位符UIView元素。 现在,当我从视图xib的内容创
2回复

如何使用情节提要segue将UIViewController连接到UIView,而无需任何代码?

我正在通过互联网搜索一些音频教程,最终从苹果找到了一个演示/示例。 在此示例中,我想知道它们如何使用情节提要脚本将UIViewController连接到UIView。 从这里下载项目。 以下是情节提要连接 当我们在下面运行应用程序时,它的输出是 谁能解释一下如何实现