簡體   English   中英

在Swift中以編程方式從一個UIViewController移至另一個

[英]Moving from one UIViewController to another in Swift programmatically

我有2個ViewController。 我沒有情節提要。 一旦在第一個viewController中完成所有操作后,我想從第一個視圖移動到另一個視圖。 怎么做呢? 就是這樣,第一個視圖顯示圖像,而在后台則進行一些API調用。 API調用成功后,我希望它移至第二個ViewController( LoginActivityViewController )。 我嘗試在第一個ViewController中調用它:

var loginActivity = LoginActivityViewController()
self.navigationController.pushViewController(loginActivity, animated: true)

但是,這沒有用。 這個怎么做?

這是我在AppDelegate中的應用程序功能

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
    // Override point for customization after application launch.
    window = UIWindow(frame: UIScreen.mainScreen().bounds)
    let navigationController: UINavigationController = UINavigationController(rootViewController: RootViewController())
    navigationController.setNavigationBarHidden(true, animated: false)
    window!.rootViewController = navigationController
    window!.makeKeyAndVisible()
    return true
}

這是我的RootViewController的viewDidLoad()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    let image1 = UIImage(named: "Default.png")
    let imageview = UIImageView(image: image1)
    self.view.addSubview(imageview)
    var loginActivity = LoginActivityViewController()
    self.navigationController.pushViewController(loginActivity, animated: true)
}

正確啟動導航控制器后,您的方法應如下所示:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {

    window = UIWindow(frame: UIScreen.mainScreen().bounds)
    let rootViewController: RootViewController = RootViewController(nibName: "RootViewController", bundle: nil)
    let navigationController: UINavigationController = UINavigationController(rootViewController: rootViewController)
    window!.rootViewController = navigationController
    window!.makeKeyAndVisible()
    return true
}

現在您可以將新的視圖控制器推入層次結構中。


更新

如果您不想顯示導航欄,請將此行插入到上面的代碼中。

navigationController.setNavigationBarHidden(true, animated: false)
var next = self.storyboard?.instantiateViewControllerWithIdentifier("DashboardController") as! DashboardController
self.presentViewController(next, animated: true, completion: nil)

不要忘記在StoryBoard設置ViewController StoryBoard Id StoryBoard > identity inspector

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM