首页 > 解决方案 > UIView中的swift ios UIButton不起作用

问题描述

我使用故事板制作了它,我为自定义标签栏制作了另一个视图控制器,并创建了一个名为 innerContents 的 UIView。

我在其中为设置页面制作了另一个视图控制器,并使用 addSubview 在 innerContents 中放置了另一个视图控制器。

带有 innerContents UIView 的 CustomTabBar

这就是 innerTabBar 主 CustomTabBar 视图控制器页面

其他 ViewController 我将把那个 ViewController 放在 innerContents 中。所以我写了addSubView。他们正在显示,但 UIButtons 不起作用。仅适用于滚动视图。

我该如何解决?

代码

我确认所有插座都连接正常。但是 UiView 内另一个视图控制器的 UiView 内的 UIScrollView 内的 UIButton 不起作用。

mainCustomTabBar Page viewController > innerContents > otherViewController(addSubView) > UIView > UI ScrollView > UIView > UIView > UIButton(它不工作。我想修复它)

            if currentPage != 5 {
                currentPage = 5
                print("탭바 클릭 5")
                guard let AppSet = self.storyboard?.instantiateViewController(identifier: "AppSetViewController") as? AppSetViewController else {return}
                AppSet.view.frame = ContentsView.bounds
                AppSet.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
                AppSet.view.tag = 500
                removeSubview(tag: nowTag)
                nowTag = 500
                ContentsView.addSubview(AppSet.view)
                let root = UIApplication.shared.windows.first?.rootViewController
                root?.addChild(AppSet)
                AppSet.didMove(toParent: root!)
                page5Mode()
                return
            }
        }

//
//  AppSetViewController.swift
//  rael
//
//  Created by HongDaehyeon on 2021/07/08.
// 앱 설정 페이지를 위한 페이지 입니다.

import UIKit

class AppSetViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    @IBOutlet var ContentView: UIView!{
        didSet {
            self.ContentView.isUserInteractionEnabled = true
        }
    }
    @IBOutlet var Scrollview: UIScrollView!{
        didSet{
            self.Scrollview.isExclusiveTouch = true
        }
    }
    
    //지갑정보
    @IBAction func walletInfo(_ sender: Any) {
        print("지갑정보")
    }
    
    //알림설정
    @IBAction func alertSet(_ sender: Any) {
        print("알림설정")
    }
    
    //인증방식설정
    @IBAction func authSet(_ sender: Any) {
        print("인증방식설정")
    }
    
    //공지사항
    @IBAction func noticeNav(_ sender: Any) {
        let vc = self.storyboard?.instantiateViewController(identifier: "SettingsNoticeViewController")
        let navController = UINavigationController(rootViewController: vc!)
        navController.modalPresentationStyle = .fullScreen
        navController.modalTransitionStyle = .crossDissolve
        navController.setNavigationBarHidden(true, animated: false)
        self.present(navController, animated: true, completion: nil)
    }
    
    //FAQ
    @IBAction func faqNav(_ sender: Any) {
        let vc = self.storyboard?.instantiateViewController(identifier: "FaqViewController")
        let navController = UINavigationController(rootViewController: vc!)
        navController.modalPresentationStyle = .fullScreen
        navController.modalTransitionStyle = .crossDissolve
        navController.setNavigationBarHidden(true, animated: false)
        self.present(navController, animated: true, completion: nil)
    }
    
    //고객상담
    @IBAction func serviceCenter(_ sender: Any) {
        print("고객상담")
    }
    
    //약관 및 정책
    @IBAction func termsNav(_ sender: Any) {
        print("약관 및 정책")
    }
    
    //지갑 삭제
    @IBAction func removeWallet(_ sender: Any) {
        print("지갑삭제")
    }
    
    //전화걸기
    @IBAction func callService(_ sender: Any) {
        print("전화걸기")
        let urlString = "tel://1588-8282"
        let numberURL = NSURL(string: urlString)
        UIApplication.shared.open(numberURL! as URL, options: [:], completionHandler: nil)
    }
    
    //앱정보 로딩
    @IBOutlet var appVer: UILabel!{
        didSet{
            self.appVer.text = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String
        }
    }

}```

标签: iosswiftuiviewuiscrollviewuibutton

解决方案


推荐阅读