uialertview називається більше одного разу

Це дратує ... !!!

Я знайомився з цією проблемою, знайшов Відносні питання , але не Satisfactory Answers .

Таким чином, у мене є один метод - (IBAction) , який додає деякі UITextField значення до NSMutableArray , коли "Додати" Натиснута кнопка. Я просто намагаюся показати UIAlertView , якщо UITextField порожній .

My Code :

- (IBAction)addButtonPressed:(id)sender
{
       if ([textField1.text length]==0 || [textField2.text length]==0 || !someFlag)
        {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"MyApp" message:@"Please Enter Valid Data..." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
            [alert show];
            [alert release];
        }
        else
        {
            //Code to add textField's value to Array.
        }
}

Моя проблема:

Кожного разу, коли я натискаю кнопку "Додати" з порожнім текстовим полем , UIAlertView з'являється тричі .

1) For the First Time It appears with "Close" Button. (I have never added...) It disappears within some time.

2) Second Time It appears with "OK" Button. (That's what I added...) It disappears when I press "OK" Button.

3) Third Time It appears with "Close" Button again. It disappears when I press "Close" Button.

РЕДАГУВАТИ:

Подібний питання: UIAlertView перевищує три разу на дзвінок Замість одного разу . Чи може хтось допомогти мені знайти рішення з цього?

2
Просто перевірте UPDATE у моєму запиті ...
додано Автор Bhavin, джерело
@ rptwsthi: Це те, що я хочу знати. Коли я запускаю код з if ([textField1.text isEqualToString: @ ""]), він ідеально працює ...
додано Автор Bhavin, джерело
@Базінга: Я спробував це, але не пощастило у всіх.
додано Автор Bhavin, джерело
@ who9vy: тільки з IB.
додано Автор Bhavin, джерело
Перевірте мій новий EDIT ..
додано Автор Bhavin, джерело
ви спробуєте це за умови [textField.text isEqualToString: @ ""]
додано Автор KDeogharkar, джерело
Ви не повинні порівнювати з NULL. Ви можете підтвердити, що метод викликається три рази?
додано Автор Rowan Freeman, джерело
Проблема з іншим кодом, а не цим кодом. Перевірте інший код.
додано Автор Rajan Balana, джерело
скажіть мені, коли ви отримаєте це .. :)
додано Автор rptwsthi, джерело
@Він ви можете опублікувати свою відповідь як відповідь, що буде більш доцільним для пошуку.
додано Автор rptwsthi, джерело
Тоді про те, що @ "закрити" матеріал ur код не має @ "закрити" в будь-якому місці.
додано Автор rptwsthi, джерело
Як ви додасте дію до вашого інтерфейсу? Лише з інтерфейсом Builder? Ви додасте дію за допомогою методу addTarget UIButton ?
додано Автор who9vy, джерело
Проблема може бути з методом делегації.
додано Автор Vinayak Kini, джерело
Ви можете показати сповіщення, яке з'являється за допомогою кнопки "Закрити"
додано Автор Satish Azad, джерело

7 Відповіді

Дивно .... !!!

Іноді трапляється, що ви повністю забуваєте певні рядки вашого коду, коли ви надмірно дратуєте . Це також стосується мене. Я нехтував одним методом, який викликається з методу -addButtonPressed , в якому є один AlertView (за допомогою кнопки "Закрити" звичайно).

Саме це рішення !!!

1
додано

Ваш код не містить жодних проблем. Там немає 3, це лише 2 сигнали. ось потік попереджень:

  1. Як тільки ви клацнете на кнопці add , натискається 2 селектора (може бути одна всередині іншої OR 2 IBAction за допомогою однієї кнопки), яка містить в них код перегляду попереджень
  2. Тепер, коли оповіщення2 (з кнопкою скасування) викликається до попередження1 (з кнопкою ok)
  3. Після цього сповіщення1 викликається і приховує оповіщення2
  4. Тепер, коли ви вирішите попередження1 (натиснувши кнопку ok), alert2 з'явиться знову

Тепер вам потрібно перевірити "якщо ваша кнопка не пов'язана з 2 IBActions", яка має бути такою, як у вас немає такого коду, щоб викликати інше сповіщення в цьому методі. І перевірте, чи це допомагає.

1
додано
Ні, моя кнопка "Додати" пов'язана лише з addButtonPressed ...
додано Автор Bhavin, джерело
Просто перевірте UPDATE у моєму запиті ...
додано Автор Bhavin, джерело
+1 для показу напрямку та ваших зусиль. Дякую...
додано Автор Bhavin, джерело
Чи можете ви завантажити це на GIT і надати посилання. тому я можу перевірити проблему
додано Автор rptwsthi, джерело

Перевірте нижче код:

if ([textField.text length]==0)
{
UIAlertView *objAlertMsg = [[UIAlertView alloc] initWithTitle:@"MyApp"
                                                       message:@"Please Enter Valid Data..."
                                                      delegate:nil
                                             cancelButtonTitle:@"OK"
                                             otherButtonTitles:nil];
[objAlertMsg show];
[objAlertMsg release];
}

Перевірте, що я встановив делегат на "нуль", а не на "себе". І переконайтеся, що ви не впровадили делегату в контролер перегляду, якщо це не обов'язково.

Сподіваюся, вам буде корисно.

Підбадьорює

1
додано
Так, я спробував це, але не працював ...
додано Автор Bhavin, джерело
Я спробував це, але не пощастило ... !!
додано Автор Bhavin, джерело
PLZ перевірте оновлений код, і дайте мені знати, якщо це успіх.
додано Автор Nishant B, джерело

так, я стикаюся з такою ж проблемою, але моя справа відрізняється від вас.

  1. Ви повинні спробувати [textfield.text isEqualToString: @ ""]; , оскільки це стандартний спосіб порівняння пустих текстових полів в Objective-C.

  2. Перевірте, чи правильно відхилити правильний перегляд сповіщень. Іноді ми не концентруємо увагу на відхиленні вікна попередження, тому що ваш попереджувальний вигляд залишається активним, а коли ви знову відкриваєте програму, вона відображається 2-3 рази залежно від ваш стан Таким чином, ви можете використовувати делегату відхилити вікно сповіщень з індексом кнопки для відхилення вигляду сповіщення в перегляді зникне . Я не впевнений, але він повинен працювати на вас. Дякую удачу. Чувак.

  3. І я не впевнений, але я думаю, що ваша кнопка IBAction перезаписується кожного разу, коли ви натискали будь-яку кнопку, тому вам слід перевірити це.

1
додано
Просто перевірте UPDATE у моєму запиті ...
додано Автор Bhavin, джерело
+1 для вашої першої точки.
додано Автор Bhavin, джерело

Спробуйте порівняти подібне.

if([testBox.text isEqualToString:@""]
{

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                    message:errorDesc
                                                   delegate:self
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];

    [alert show];
}
0
додано
Перевірте коментарі в моєму запиті, я вже пробував цей спосіб ...
додано Автор Bhavin, джерело
- (IBAction)addButtonPressed:(id)sender
{
   if ([textField.text length]==0)
    {
           UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Information",@"") message:NSLocalizedString(@"Txt is  Empty!",@"") delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",@"") otherButtonTitles:nil];
        [alert show]; alert = nil;
    }
    else
    {
        //Code to add textField's value to Array.
    }
}

Спочатку перевірте, скільки разів ви називаєте метод IBAction під час натискання кнопки ???

Інший приклад UIAlertView є загальнодоступним . Я маю на увазі покласти в файл .h і отримати доступ до нього як self.yourAlertViewName в .m-файлі .

Дякую :)

0
додано

Спробуйте нижче код ...... дайте мені знати, чи працює він чи ні !!!!

що ви зробили - це ви дали іншу кнопку 2 рази нуль .. так може бути, це проблема ...

Щасливе кодування !!!!

 if ([textField.text length]==0)
    {

      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"MyApp" message:@"Please Enter Valid Data..." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
    [alert release];
    }
0
додано
Так, я спробував це, але не працював ...
додано Автор Bhavin, джерело
IT KPI iOS
IT KPI iOS
74 учасників

Чат обсуждения IOS. - Оффтоп, флуд, оскорбления и вбросы здесь не приняты. - За нарушение - предупреждение или mute на неделю. - За спам и рекламу - ban. Все чаты IT KPI: https://t.me/itkpi/602

ios_jobs_ua
ios_jobs_ua
27 учасників

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.