2016-01-21 1 views
0

Я ищу, чтобы сохранить целое число пользователь выбирает из колесикаКак звонить пользователям самый последний выбор в быстром Re: UIPickerView

однако после того, как пользователь нажимает на кнопку, MYVARIABLE в настоящее время является сумма всех пользователи, которые они сделали, когда они перемещали колесо вверх и вниз

Как я могу активировать самый последний выбор нажатием кнопки? например:

// add most recent pickerView selection to totalData var 
var totalData = 0 
var tempData = 0 

@IBAction func addButton(sender: UIButton) { 

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 

    // ToDo: RETURN MOST RECENT SELECTION (??) 

     if component == 1 { 
      // Update the label 
      // Increase temp data variable by number in the row: Add to totalData once button is pressed 
      tempData += row 
     } 
    } 

    // If tempData has a number pass it to tempData2 
    if let tempData2:Int = tempData { 
     totalData += tempData2 
     print(totalData) 
    } 
    tempData = 0 
} 

// Благодаря

ответ

1

Храните все значения в массиве и, если вы хотите, чтобы получить последнее значение просто:

let arr = [1,3,6,7,2] 
let latestValue = arr.last! // will give you 2 

Чтобы получить выбранный элемент в pickerView использование:

func pickerView(pV: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    print(arr[row]) 

} 
+0

Спасибо, что скоро пригодится. Однако моя проблема еще не решена - каждый раз, когда пользователь меняет колесо прокрутки, моя переменная суммирует все остановки колесика прокрутки. Как использовать только последний выбор? – Dazzle

+0

@Dazzle, проверьте обновление. –

+0

Проверено обновление. не работает, к сожалению, – Dazzle

0

pickerView(pickerView:didSelectRow:inComponent будет называться e picker прокручивается. Каждый раз, когда он называется, вам нужно заменить предыдущее значение на новое. На данный момент вы используете «+ =», поэтому вы накапливаете все номера строк в tempData.

Неясно, чего пытается достичь ваш код tempData2. tempData не является необязательным и всегда будет содержать целое число. Поэтому нет смысла использовать if let. Компилятор должен предупредить вас об этом. Еще раз, однако, ваш код использует «+ =», а не просто «=», и непонятно, почему.

+0

Привет, Майкл, спасибо за ваш совет. Да, один элемент - это все, что требуется. Кажется, похоже, что он не работает – Dazzle

+0

Почему вы добавляете tempData2 в totalData, а не просто устанавливаете его? – Michael

+0

Я обновил свой ответ (надеюсь), будет более ясным. – Michael

Смежные вопросы