2017-12-05 12 views
0

단추를 클릭 할 때보기 컨트롤러를 어떻게 변경합니까? 나는 스토리 보드를 사용하지 않고있다. 뷰는 모두 프로그래밍 방식으로 생성되었습니다. 클릭하면보기 컨트롤러 변경 UIButton Swift (스토리 보드 없음)

func switchView() { 
    print(123) 
    let prodListController = ProductListController() 
    self.navigationController?.pushViewController(prodListController, animated: true) 
} 

가있는 UIViewController 클래스 내에서 호출되었습니다

나는 버튼에 대상을 추가 한 다음 새보기 컨트롤러를 밀어 다음 메소드를 호출했습니다.

도움이 될 것입니다. 감사!!

편집 : 만들어 다음과 같이 수정 :

window = UIWindow(frame: UIScreen.main.bounds) 
window?.makeKeyAndVisible() 
window?.rootViewController = UINavigationController(rootViewController: ProductListController()) 
+0

이 코드 i 아무것도하지 않으면, 네가'navigationController'가'nil '이 될 수 있다고 생각한다. –

답변

0

당신은 다른의 ViewController이 문제를 해결할 수

self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 
var navVC = UINavigationController() 
var yourVC = YourViewController() 
navVC.viewControllers = [yourVC] 
self.window!.rootViewController = navVC 
self.window?.makeKeyAndVisible() 

희망을 밀어이 코드를 시도 할 수 있습니다.

+0

나는 당신이 한 일을 따라 갔지만 약간의 수정을했다 : – Omeizi94

+0

@ Jundallah3 그래서 작동합니까? – ShivJ

+0

예 원본 게시물을 편집했습니다. – Omeizi94

0

navigationController를 사용하고 있습니까?

self.show(ProductListController(), sender: self) 

을하지만, 당신이있는 navigationController을 사용하려는 경우, 당신은 먼저 설정해야합니다 : 그것은 "무기 호"인 것처럼

당신은 대신에 "쇼"와 함께 할 수 있습니다 ... 보인다. didFinishLaunchingWithOptions에

(AppDelegate.swift) : 다음

self.pushViewController(ViewController(), animated: true) 

과 :

// Override point for customization after application launch. 
self.window = UIWindow(frame: UIScreen.main.bounds) 

let initialViewController = NavViewController() 

self.window?.rootViewController = initialViewController 
self.window?.makeKeyAndVisible() 

return true 
NavViewController.swift의의 viewDidLoad에

예를 들어 (당신이있는 navigationController 사용하여 응용 프로그램을 시작합니다 랬) 버튼에 코드를 사용할 수 있습니다.

func switchView() { 
    print(123) 
    let prodListController = ProductListController() 
    self.navigationController?.pushViewController(prodListController, animated: true) 
} 
+0

코드를 AppDelagate에 추가했습니다. 버튼을 클릭하면 어떻게 그 위에 뷰 컨트롤러를 추가 할 수 있습니까? – Omeizi94

+0

switchView() (위 참조) 내에 코드를 사용하여 새로운보기 컨트롤러를 표시 할 수 있습니다. 할 수 없다면 표시중인 현재보기 컨트롤러의 이름과 표시 할보기 컨트롤러를 말해주십시오. –

+0

나는 setupView와 똑같은 코드를 가지고 있지만 새 뷰를 보여주지는 않습니다. – Omeizi94