Ios 为什么我不能调用我的IBOutlet以便在XCode 9.3中使其成为委托
我正在尝试使UITableView委派,以便在项目中使用其属性。但我似乎不能调用我的ToDoListTable IBOutlet,这样我就可以通过执行ToDoListTable.Delegate=self将其作为委托。我在下面附上了一张图片,显示XCode甚至不建议这样做。所以我不确定我应该做什么Ios 为什么我不能调用我的IBOutlet以便在XCode 9.3中使其成为委托,ios,swift,xcode,uitableview,delegates,Ios,Swift,Xcode,Uitableview,Delegates,我正在尝试使UITableView委派,以便在项目中使用其属性。但我似乎不能调用我的ToDoListTable IBOutlet,这样我就可以通过执行ToDoListTable.Delegate=self将其作为委托。我在下面附上了一张图片,显示XCode甚至不建议这样做。所以我不确定我应该做什么 如果您想使用故事板为学员演示,请参阅所附图片 在StoryBord 比 写入ViewDidLoad tableview.delegate = self tableview.dataSource =
如果您想使用故事板为学员演示,请参阅所附图片 在
StoryBord
比
写入ViewDidLoad
tableview.delegate = self
tableview.dataSource = self
您需要在viewdidload中为代理指定 ToDoListTable.delegate=self
ToDoListTable.datasource=self您可以通过编写
`toDoListTable.delegate = self` (just write it if you are not able to get the instance of tableview. sometime it's just xcode issue)
或者使用故事板并选择tableview,点击连接检查器(最后一个)并将代理出口的连接添加到Viewcontroller 将此代码段添加到您的ToDoListViewController中
func viewDidLoad() {
super.viewDidLoad()
ToDoListTable.delegate = self
ToDoListTable.dataSource = self
}
您应该在viewDidLoad()方法中分配您的委托。为了更好地进行代码实践,还建议您使用小写字母来命名IBOutlet。假设命名TODOLISTABLE比TODOLISTABLE更好,您需要在@IBOutlet之后和var之前使用“弱”
func viewDidLoad() {
super.viewDidLoad()
ToDoListTable.delegate = self
ToDoListTable.dataSource = self
}
@IBOutlet weak var tableView: UITableView!
为什么不在情节提要中连接表视图的委托和数据源?但是如果你想在代码中完成,你需要在
viewDidLoad
中完成,而不是在类中的任意位置。哦!哈哈,谢谢!我对这个很陌生,但是在故事板上我该怎么做呢?