我有一个分段控件,有三个分段。”牛、羊和山羊。在绵羊和山羊中还有另一个分段控制“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/