사용자 지정 셀에서 UISwitch를 사용하여 새 컨트롤러로 이동할 수 없습니다.

user616076

UISwitch에서 변경 이벤트를 사용하여 현재 ViewController에서 새 ViewController로 이동하려고합니다. 내 UISwitch는 내 UITableView의 사용자 정의 셀에 대한 CustomView에 등록되어 있습니다. 액션은 다음과 같이 내 View Controller에서 클래스를 호출하여 등록됩니다.

import UIKit

public class CustomTableViewCell: UITableViewCell {  
    @IBOutlet weak var operatedSwitch: UISwitch!

    @IBAction func operatedSwitchChange() {
        updateValveOps.valveUpdate()
    }

내 ViewController의 내 클래스에 도착하면 아래와 같이 새 ViewController로 이동해야하는 메인 클래스의 메서드를 호출합니다.

import UIKit

class updateValveOps {
    class func valveUpdate() {
        let valveOps = ValveOperationsController()
        valveOps.ValveOpsUpdate()
    }
}

class ValveOperationsController: UIViewController {
.
.
func ValveOpsUpdate() {
    performSegueWithIdentifier("ValveOpsToUpdateSegue", sender: nil)
}

그러나 이로 인해 Sigabrt 오류가 발생합니다. 또한 현재 뷰에서 새 뷰 컨트롤러로 푸시하려고 시도했지만 어떤 이유로 든 호출 뷰 컨트롤러로 돌아갑니다! 내가 도대체 ​​뭘 잘못하고있는 겁니까?

user616076

프로토콜을 사용하여이 작업을 수행하는 방법을 찾았습니다. 먼저 ValveOperationsController에 프로토콜을 추가하고 아래와 같이 참조했습니다.

protocol CustomCellDelegator {
    func callSegueFromCell()
}

class ValveOperationsController: UIViewController, CustomCellDelegator {

그런 다음 cellForRowInIndexPath의 내 셀에 대리자를 추가했습니다.

    cell.delegate = self

그런 다음 내 프로토콜에서 호출 된 메서드를 내 ViewController에 추가했습니다.

func callSegueFromCell() {
    performSegueWithIdentifier("ValveOpsToUpdateSegue", sender: nil )
}

그런 다음 CustomTableViewCell로 이동하여 대리인을 추가했습니다.

var delegate:CustomCellDelegator!

그런 다음 스위치가 변경 될 때 호출되는 이벤트에서 내 프로토콜에 호출을 추가했습니다.

if(self.delegate != nil){ //Just to be safe.
        self.delegate.callSegueFromCell()
}

스위치가 변경 될 때 이벤트가 호출되면 내 메서드에 전달하는 Protocol을 호출하고 Segue가 성공적으로 작동합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Opencart 2에서 사용자 지정 컨트롤러를로드 할 수 없습니다.

새 사용자 지정보기 컨트롤러를 추가 한 후 앱을 실행할 수 없습니다.

한 컨트롤러에서 다른 컨트롤러에서 사용할 서비스로 설정된 값은 angular js (new to angular)를 사용하여 페이지 새로 고침시 값을 반환하지 않습니다.

컨트롤러 ID를 기반으로 페이지에서 컨트롤러를 사용할 수 있습니까?

사용자를 두 번째보기 컨트롤러에서 initialview 컨트롤러로 이동할 수 없습니다.

Yii2 컨트롤러에서 사용자 지정 작업으로 라우팅 할 수 없습니다.

Rails 컨트롤러를 사용하여 Heroku에서 파일을 다운로드 할 수 없습니다.

CakeDC 사용자가 사용자 정의 컨트롤러를 로드할 수 없는 것 같습니다.

angularjs 및 ionic을 사용하여 컨트롤러에서 뷰로 데이터를 가져올 수 없습니다.

컨트롤러에서 Sequelize 모델 사용자 정의 함수를 호출할 수 없습니다.

새 컨텍스트를 사용하여 Kubernetes에 연결할 수 없습니다.

경로에서 리소스를 사용할 때 컨트롤러에서 사용자 지정 함수 사용-Laravel

CI 컨트롤러를 사용하여 codeigniter 폴더에 파일을 업로드 할 수 없습니다.

Outlet 속성을 사용하여 한 컨트롤러에서 다른 컨트롤러로 Segue를 전달할 수 없습니까?

Visual Studio 2019에서 사용자 정의 컨트롤 디자인보기를로드 할 수 없습니다.

각도 js의 html 페이지에서 컨트롤러로 사용자 이름과 암호를 전달할 수 없습니다.

인 텐트를 사용하여 RelativeLayout에서 만든 이미지를 새 활동으로 전달할 수 없습니다.

자연 이름 지정을 사용하여 PyTable에서 데이터 세트를 검색 할 수 없습니다.

pageLoadTimeout에서 TimeOutException을 포착하고 셀레늄 Java FireFox 드라이버를 사용하여 페이지를 새로 고칠 수 없습니다.

사용자 지정 컨트롤에서 "IOException : 리소스 X를 찾을 수 없습니다."응용 프로그램이 작동합니다.

버튼을 사용하여 한보기 컨트롤러에서 다른보기 컨트롤러로 이동할 수 없습니다.

수퍼 클래스를 사용하여 상속 된 새 뷰 컨트롤러로 푸시 할 수 있습니까?

angularjs에서 {{}}를 사용하여 뷰에서 컨트롤러 변수에 액세스 할 수 없습니다.

iOS 7 사용자 지정 UINavigationBar TitleView는 새 뷰 컨트롤러를 밀거나 팝할 때 이동합니다.

Firebase를 사용하여 한 뷰 컨트롤러에서 다른 뷰 컨트롤러로 이미지 전달

컨트롤러를 클래스로 사용하여 Angular1 + ES6을 사용하는 동안 종속성 주입은 컨트롤러 함수에서 정의되지 않습니다.

WinForm은 새 컨트롤의 창 크기를 자동으로 조정하지만 사용자가 크기를 조정할 수 있도록 허용합니까?

UnitTest에서 컨트롤러로 사용자 정보를 어떻게 전달할 수 있습니까?

page.goto ()를 사용하여 페이지에서 다른 페이지로 이동할 수 없습니다-Puppeteer

TOP 리스트

  1. 1

    셀레늄의 모델 대화 상자에서 텍스트를 추출하는 방법은 무엇입니까?

  2. 2

    Blazor 0.9.0 및 ASP.NET Core 3 미리보기 4를 사용한 JWT 인증

  3. 3

    openCV python을 사용하여 텍스트 문서에서 워터 마크를 제거하는 방법은 무엇입니까?

  4. 4

    C # 16 진수 값 0x12는 잘못된 문자입니다.

  5. 5

    Excel : 합계가 N보다 크거나 같은 상위 값 찾기

  6. 6

    오류 : MSB4803 : MSBuild의 .NET Core 버전에서 "ResolveComReference"작업이 지원되지 않습니다.

  7. 7

    R에서 Excel로 내보낼 때 CET / CEST 시간 이동이 삭제됨

  8. 8

    node.js + postgres : "$ 1"또는 그 근처에서 구문 오류

  9. 9

    확대 후 하이 차트에서 Y 축이 잘못 정렬 됨

  10. 10

    EPPlus에서 행 높이를 설정할 때 이상한 동작

  11. 11

    Ionic 2 로더가 적시에 표시되지 않음

  12. 12

    MS Access 부분 일치 2 테이블

  13. 13

    EPPlus에서 병합 된 셀의 행 높이 자동 맞춤

  14. 14

    ExecuteNonQuery- 연결 속성이 초기화되지 않았습니다.

  15. 15

    ResponseEntity를 사용하고 InputStream이 닫히는 지 확인하는 적절한 스트리밍 방법

  16. 16

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  17. 17

    오류 : "const wchar_t *"유형의 인수가 "WCHAR *"유형의 매개 변수와 호환되지 않습니다.

  18. 18

    Java에서 이미지를 2 색으로 변환

  19. 19

    overflow-y를 사용할 때 스크롤 버벅 거림 줄이기 : scroll;

  20. 20

    Java에서 Apache POI를 사용하여 테이블 크기 및 간격을 단어로 설정하는 방법

  21. 21

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

뜨겁다태그

보관