Как я автоматически перейду с раскадровки, указав ей ограничение по времени. [Дубликат]

Быстрая и грязная реализация

  - (NSInteger) integerFromYoutubeDurationString: (NSString *) duration {if (duration == nil) {return 0;  } NSString * startConst = @ "PT";  NSString * hoursConst = @ "H";  NSString * minutesConst = @ "M";  NSString * secondsConst = @ "S";  NSString * hours = nil;  NSString * minutes = nil;  NSString * seconds = nil;  NSInteger totalSeconds = 0;  NSString * clean = [dлительность компонентовSeparatedByString: startConst] [1];  if ([clean containsString: hoursConst]) {hours = [clean componentsSeparatedByString: hoursConst] [0];  clean = [clean componentsSeparatedByString: hoursConst] [1];  totalSeconds = [hours integerValue] * 3600;  } if ([clean containsString: minutesConst]) {minutes = [clean componentsSeparatedByString: minutesConst] [0];  clean = [clean componentsSeparatedByString: minutesConst] [1];  totalSeconds = totalSeconds + [minutes integerValue] * 60;  } if ([clean containsString: secondsConst]) {seconds = [clean componentsSeparatedByString: secondsConst] [0];  totalSeconds = totalSeconds + [seconds integerValue];  } return totalSeconds;  }  
7
задан Fiducial13 15 October 2014 в 10:50
поделиться

4 ответа

Если ваш пользовательский интерфейс размещен на раскадровке, вы можете установить NSTimer в viewDidLoad вашего первого ViewController, а затем вызвать performSegueWIthIdentifier при срабатывании таймера:

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let timer = Timer.scheduledTimer(interval: 8.0, target: self, selector: #selector(timeToMoveOn), userInfo: nil, repeats: false)
    }

    @objc func timeToMoveOn() {
        self.performSegue(withIdentifier: "goToMainUI", sender: self)
    }

Вот как вы установили segue в Storyboard:

  1. Перетащите элемент управления из значка владельца файла первого ViewController во второй ViewController.
  2. Выберите «модальный» из всплывающего окна.

Seting up the segue [/g3]


  1. Нажмите segue arrow , который появляется между контроллерами вида. В Attributes Inspector для segue ...
  2. Дайте вашему идентификатору идентификатор.
  3. Отключить Анимация , если вы Не хотите видеть, как экран скользит.

enter image description here [/g4]

18
ответ дан vacawama 16 August 2018 в 01:59
поделиться

Вы можете использовать этот фрагмент кода:

let delay = 1 // Seconds
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(delay * NSEC_PER_SEC)), dispatch_get_main_queue()) {
    self.launchMainUI()
    return
}

, который выполняет launchMainUI метод после delay секунд. Замените его своей собственной реализацией, где вы создаете экземпляр своего контроллера представления и представляете его, или просто вызываете segue.

1
ответ дан Antonio 16 August 2018 в 01:59
поделиться

Swift 4:

let timer = Timer.scheduledTimer(timeInterval: 8.0, target: self, selector: #selector(segueToSignIn), userInfo: nil, repeats: false)

@objc func segueToSignIn() {
    self.performSegue(withIdentifier: "SignInSegue", sender: self)
}
0
ответ дан aviran 16 August 2018 в 01:59
поделиться

В вашем действии вы должны написать, как в этом примере

self.performSegueWithIdentifier («имя segue», отправитель: self)

после того, как вы должны реализовать этот метод

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{        
        if(segue.identifier == "name of segue")
        {
            var view : yourviewcontroller = segue.destinationViewController as yourviewcontroller
        }

}
0
ответ дан reVerse 16 August 2018 в 01:59
поделиться