2017-07-20 46 views
-1

我目前正在尝试添加一个按钮,以便我可以转到UIScrollView中的其他页面,但是我不断收到错误消息。基本上我创建的自定义幻灯片占用屏幕底部的三分之一的滚动视图。在滚动视图问题中更改页面

[App.ViewController A按钮:]:无法识别的选择发送到实例 0x7fe464c131c0 2017年7月19日22:47:48.791应用[10680:546634] *** 终止应用程序由于未捕获的异常 “NSInvalidArgumentException ”,原因: ' - [App.ViewController A按钮:]:无法识别 选择发送到实例0x7fe464c131c0'

到目前为止我读过关于这里几个帖子,并尝试

pagecontrol.currentpage = 0

mainScrollView.contentOffset = CGPoint(X: mainScrollView.frame.size.width * 1,Y:0)

import UIKit 
import AVFoundation 

extension UITextView: UITextViewDelegate{} 

var audioPlayer = AVAudioPlayer() 

var switchison = false; 

var appArray: [Int] = [] 

var textArray: [String] = [] 


class ViewController: UIViewController,UIScrollViewDelegate { 



    @IBOutlet weak var myTextView: UITextView! 

    @IBOutlet weak var pageControl: UIPageControl! 

    @IBOutlet weak var mainScrollView: UIScrollView! 

    @IBAction func oneTap(_ sender: UISwitch) { 
     if (sender.isOn == true) 
     { 
      switchison = true; 
     } 
     else 
     { 
      switchison = false; 
     } 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     mainScrollView.delegate = self 
     let slides:[Slide] = createSlides() 
     setupSlideScrollView(slides: slides) 
     pageControl.numberOfPages = slides.count 
     pageControl.currentPage = 0; 
     view.bringSubview(toFront: pageControl) 
    } 



    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

    func createSlides() -> [Slide] 
    { 
     let homeSlide = Bundle.main.loadNibNamed("Slide", owner: self, 
     options: nil)?.first as! Slide 
     let aSlide = Bundle.main.loadNibNamed("SlideA", owner: self, 
     options: nil)?.first as! Slide 
     let bSlide = Bundle.main.loadNibNamed("SlideB", owner: self, 
     options: nil)?.first as! Slide 
     let cSlide = Bundle.main.loadNibNamed("SlideC", owner: self, 
     options: nil)?.first as! Slide 
     let dSlide = Bundle.main.loadNibNamed("SlideD", owner: self, 
     options: nil)?.first as! Slide 
     let eSlide = Bundle.main.loadNibNamed("SlideE", owner: self, 
     options: nil)?.first as! Slide 
     let fSlide = Bundle.main.loadNibNamed("SlideF", owner: self, 
     options: nil)?.first as! Slide 
     let gSlide = Bundle.main.loadNibNamed("SlideG", owner: self, 
     options: nil)?.first as! Slide 
     let hSlide = Bundle.main.loadNibNamed("SlideH", owner: self, 
     options: nil)?.first as! Slide 
     let iSlide = Bundle.main.loadNibNamed("SlideI", owner: self, 
     options: nil)?.first as! Slide 
     let jSlide = Bundle.main.loadNibNamed("SlideJ", owner: self, 
     options: nil)?.first as! Slide 
     let kSlide = Bundle.main.loadNibNamed("SlideK", owner: self, 
     options: nil)?.first as! Slide 
     let lSlide = Bundle.main.loadNibNamed("SlideL", owner: self, 
     options: nil)?.first as! Slide 
     let mSlide = Bundle.main.loadNibNamed("SlideM", owner: self, 
     options: nil)?.first as! Slide 
     let nSlide = Bundle.main.loadNibNamed("SlideN", owner: self, 
     options: nil)?.first as! Slide 
     let oSlide = Bundle.main.loadNibNamed("SlideO", owner: self, 
     options: nil)?.first as! Slide 
     let pSlide = Bundle.main.loadNibNamed("SlideP", owner: self, 
     options: nil)?.first as! Slide 
     let qSlide = Bundle.main.loadNibNamed("SlideQ", owner: self, 
     options: nil)?.first as! Slide 
     let rSlide = Bundle.main.loadNibNamed("SlideR", owner: self, 
     options: nil)?.first as! Slide 
     let sSlide = Bundle.main.loadNibNamed("SlideS", owner: self, 
     options: nil)?.first as! Slide 
     let tSlide = Bundle.main.loadNibNamed("SlideT", owner: self, 
     options: nil)?.first as! Slide 
     let uSlide = Bundle.main.loadNibNamed("SlideU", owner: self, 
     options: nil)?.first as! Slide 
     let vSlide = Bundle.main.loadNibNamed("SlideV", owner: self, 
     options: nil)?.first as! Slide 
     let wSlide = Bundle.main.loadNibNamed("SlideW", owner: self, 
     options: nil)?.first as! Slide 
     let xSlide = Bundle.main.loadNibNamed("SlideX", owner: self, 
     options: nil)?.first as! Slide 
     let ySlide = Bundle.main.loadNibNamed("SlideY", owner: self, 
     options: nil)?.first as! Slide 
     let zSlide = Bundle.main.loadNibNamed("SlideZ", owner: self, 
     options: nil)?.first as! Slide 
     return [homeSlide, aSlide, bSlide, cSlide, dSlide, eSlide, 
     fSlide, gSlide, hSlide, iSlide, jSlide, kSlide, lSlide, mSlide, 
     nSlide, oSlide, pSlide, qSlide, rSlide, sSlide, tSlide, uSlide, 
     vSlide, wSlide, xSlide, ySlide, zSlide,] 
    } 

    func setupSlideScrollView(slides:[Slide]) 
    { 
     mainScrollView.frame = CGRect(x: 0, y: view.frame.height/1.5, 
     width: view.frame.width, height: view.frame.height) 
     mainScrollView.contentSize = CGSize(width: view.frame.width * 
     CGFloat(slides.count), height: view.frame.height) 
     mainScrollView.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) 
      mainScrollView.addSubview(slides[i]) 
     } 
    } 

    func scrollViewDidScroll(_ scrollView: UIScrollView) { 
     let pageIndex = 
     round(scrollView.contentOffset.x/view.frame.width) 
     pageControl.currentPage = Int(pageIndex) 
    } 
    @IBAction func refreshButton(_ sender: Any) { 
     myTextView.text = "" 

     for words in textArray 
     { 
      myTextView.textStorage.append(NSAttributedString(string: 
      words)) 
     } 
    } 



    @IBAction func aAlphabetButton(_ sender: Any) { 
     //need code here  
    } 
} 
+1

请阅读[如何创建一个最小,完整和可验证的示例](https://stackoverflow.com/help/mcve) –

回答

0

请参阅? unrecognized selector sent to instance xxx这意味着你有一个方法不能在某个控制器上实现。

而且reason: '-[App.ViewController aButton:]: unrecognized selector sent to instance 0x7fe464c131c0'这意味着aButton:App.ViewController方法不执行或调用App.ViewController不包含此方法

+0

谢谢,我删除了aAlphabetButton并重新制作了它。在一夜之间,我必须复制上一个按钮,但没有意识到它。使用mainScrollView.contentOffset = CGPoint(x:mainScrollView.frame.size.width * 1,y:0) – Drak

0

请检查您的所有IBOutlets,并用XIB1连接IBActions连接正确与否。当由于连接问题引发此问题。

0

没有名为aButton:的方法。我认为你应该检查你是否已经定义了方法。我可以看到一个名为aAlphabetButton的方法。您应该检查您的IB并检查是否有任何连接至方法aButton的按钮。它可能发生在你之前定义的但删除并忘记从按钮中删除IBAction。

有一个UIPageViewController用于您的目的,而不是手动创建幻灯片并添加到滚动视图。