我有一个分段控件,有三个分段。”牛、羊和山羊。在绵羊和山羊中还有另一个分段控制“RFID”和“Mobs”
我在父视图控制器上使用了三个容器视图:cattleView、sheepgotmob视图和sheepgottrfid视图,它们具有UITableViewControllers CattleTableViewController、sheepgottobtableviewcontroller和sheepgottrfidtableviewcontroller。父视图包含if语句来隐藏/显示每个视图,这可以正常工作。。
我遇到的问题是,每个子视图都需要能够将其页面上的信息从父视图上的uibarbuttonem发送到soap web服务。我的第一个想法是在每个子视图中都有一个“send”按钮,但是因为这三个视图都在应用程序启动时加载到内存中,所以按钮不知道要调用哪个视图函数。
编辑:如何在父viewController的uibarbuttonem的三个视图中分别设置一个按钮,并允许调用来自childViewControllers的正确函数?
选项2:如何通过父viewcontroller上的uibarbuttonem访问three childviewcontroller的函数?

最佳答案

我找到了一个解决方案,将这三个视图都加载到内存中,并能够使用@Julian的响应来更改调用的函数:Objective-c: How to invoke method in container view controller

//Determine which view is showing and point to the correct child class
func sendTransactionButton(sender: UIBarButtonItem) {
   log.debug("send transaction button called p2p")

    for childViewController in self.childViewControllers {

        if childViewController.isKindOfClass(CattleTableViewController) && containerTableViewCattle.hidden == false {

            var cattleVC = childViewController as! CattleTableViewController
            cattleVC.transactions()

        } else if childViewController.isKindOfClass(SheepGoatRfidTableViewController) && containerSheepGoatsRfid.hidden == false {

            var sheepGoatRFIDVC = childViewController as! SheepGoatRfidTableViewController
            sheepGoatRFIDVC.transactions()

        } else if childViewController.isKindOfClass(SheepGoatTableViewController) && containerTableViewSheepGoats.hidden == false {

            var sheepGoatsMob = childViewController as! SheepGoatTableViewController
            sheepGoatsMob.transactions()
        }
    }
}

您需要确保其他视图被隐藏,否则将从xcode收到警告。

关于ios - 具有分段控制的容器 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30826656/

10-12 00:08