UINavigationController流程迅速

时间:2016-10-04 04:40:32

标签: swift networking uinavigationcontroller appdelegate

我正在开发一个产生结帐流程的应用。 我有每个项目的SelectionViewControllers和一个最终的InvoiceViewController。

以下是我之前的app appate。我已经了解到让应用程序委托执行所有这些职责并不是一个好主意。

  var window: UIWindow?

var nextVCIndex = 1
var vcArray = [ECSelectionViewController]()
var items = [ECItem]()


func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    ECNetworkingHelper.sharedInstance.fetchCurrentFix { (data, error) in

        dispatch_async(dispatch_get_main_queue(), {

            let nav = UINavigationController()

            self.items = data
            //create my selectionViewControllers
            for item in data {
                if let selectionVC = ECSelectionViewController(item: item) {
                    self.vcArray.append(selectionVC)
                }
            }

            nav.viewControllers = [self.vcArray[0]]
            NSNotificationCenter.defaultCenter().postNotificationName("dataLoaded", object: nil)


            self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
            self.window?.rootViewController = nav
            self.window?.makeKeyAndVisible()
        })
    }

    return true
}

我一直致力于将网络转移到导航控制器。

所以我的问题是如何设置导航控制器并组织我的代码以产生与我相同的功能。 - 从数据源获取项目数据。 - 为每个项目创建选择视图控制器。并在用户点击最终选择视图控制器后,将它们加载到导航控制器中以供用户循环。(导航栏上的下一个按钮以继续下一个项目)。我初始化发票视图控制器。

enter image description here

另外要注意。我想在下载数据时显示加载视图控制器。完成后,加载所有选择视图控制器,供用户导航。

  • 这是我当前的尝试,在加载视图控制器上我调用我的获取数据函数然后相应地更新导航
  • 对此并不满意,因为我没有推出新的视图控制器,而是将其弹出。不喜欢左转的方式
  • 简而言之,我希望遵循适当的标准,保持代码清洁并使我的UI满意
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    //Show Loading Indicator
    let nav = ECNavigationController()
    let loadingVC = ECLoadingViewController()
    nav.viewControllers = [loadingVC]

    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    self.window?.rootViewController = nav
    self.window?.makeKeyAndVisible()



    return true
}

0 个答案:

没有答案