2017-10-20 77 views
0

我剛剛完成我的應用程序,它工作正常,但突然的迫切文件後 - >複製,我有一個消息說的Xcode:中無效的重複聲明「視圖控制器」

視圖控制器的「無效的重複聲明'

請幫助我,如果你可以傢伙?謝謝

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) 

    } 

} 
+2

問題不在於'ViewController'的實現,而在於你複製了文件,因此它現在找到了兩個定義'ViewController'的不同文件。你需要刪除其中的一個,或者改變其中的一個來定義一個名稱不是「ViewController」的類(例如'SecondViewController'或'DetailsViewController'或其他)。 – Rob

+0

是的!我只是想出了它。感謝你們對我的幫助! –

回答

1

是否按保存點擊複製後?該消息已經告訴你一個解決方案。您需要找到名稱爲ViewController的其他班級。

兩個步驟可以幫助:

  1. 搜索ViewController在Xcode的查找導航(搜索)
  2. 瀏覽您的項目文件夾和搜索重複.swift文件。
+0

嘿格倫!感謝您花時間幫助我。我在那裏粘貼了整個代碼。我累了找到它,但沒有運氣 –

+0

現在好了!乾杯! –

+0

好聽,J.BAT。你可以選擇一個答案給你的(這個)問題/線索:)。 – Glenn

1

這個錯誤意味着你必須與聲明的另一個文件:

class ViewController... 

您可能已經改變了文件名,例如ViewControllerTwo.swift但一定要更改類聲明瞭。

+0

現在解決了。感謝拉什旺! –