【发布时间】:2018-04-01 05:48:54
【问题描述】:
我刚刚完成了我的应用程序,它运行良好,但突然按下文件 -> 复制后,我有一条消息说
“ViewController”的重新声明无效
如果可以的话请帮帮我吧?谢谢
import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet var slideScrollView: UIScrollView!
@IBOutlet var pageControl: UIPageControl!
override func viewDidLoad() {
slideScrollView.delegate = self
let slides:[Slide] = createSlides()
setupSlideScrollView(slides: slides)
pageControl.numberOfPages = slides.count
pageControl.currentPage = 0
view.bringSubview(toFront: pageControl)
}
func createSlides () -> [Slide] {
let slide1: Slide = Bundle.main.loadNibNamed("Slide", owner:self, options:nil)?.first as!Slide
slide1.label.text = "Slide1"
let slide2: Slide = Bundle.main.loadNibNamed("Slide", owner:self, options:nil)?.first as!Slide
slide2.label.text = "Slide2"
return [slide1, slide2]
}
func setupSlideScrollView (slides:[Slide]) {
slideScrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)
slideScrollView.contentSize = CGSize(width: view.frame.width * CGFloat(slides.count), height: view.frame.height)
slideScrollView.isPagingEnabled = true
for i in 0 ..< slides.count {
slides[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height)
slideScrollView.addSubview(slides[i])
}
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let pageIndex = round(scrollView.contentOffset.x/view.frame.width)
pageControl.currentPage = Int(pageIndex)
}
}
【问题讨论】:
-
问题不在于
ViewController的实现,而在于您复制了文件,因此它现在找到了定义ViewController的两个不同文件。您需要删除其中一个,或更改其中一个以定义一个名称不是ViewController的类(例如SecondViewController或DetailsViewController或其他)。 -
是的!我刚刚想通了。谢谢你帮助我!
-
重新声明和重新编译都可能导致该问题。参考Invalid redeclaration of UITableViewDataSource method?和Invalid redeclaration of ****
标签: ios swift xcode uiviewcontroller redeclaration