2011-12-16 16 views
0

にでアクションにアクセスまたはお電話する私が右のナビゲーションバーのボタンアクションを持って、私は次のようにそれのためのアクションを設定している:どのように機能

-(IBAction)save:(id)sender 
{ 
    //Code for saving entered data 

    UITextField *fieldOne = [self.fields objectAtIndex:0]; 
    UITextField *fieldTwo = [self.fields objectAtIndex:1]; 
    UITextField *fieldThree = [self.fields objectAtIndex:2]; 

    sqlite3_stmt *statement; 
    const char *dbpath = [databasePath UTF8String]; 

    if (sqlite3_open(dbpath, &remindersDB) == SQLITE_OK && textField.text != nil) 
    { 

     NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO reminders(name, event, date) VALUES (\"%@\", \"%@\", \"%@\")", fieldOne.text, fieldTwo.text,fieldThree.text]; 

     const char *insert_stmt = [insertSQL UTF8String]; 

     sqlite3_prepare_v2(remindersDB, insert_stmt, -1, &statement, NULL); 

     NSLog(@"%@",fieldOne.text); 
     NSLog(@"%@",fieldTwo.text); 
     NSLog(@"%@",fieldThree.text); 

     if (sqlite3_step(statement) == SQLITE_DONE) 
     { 
      UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"\n Reminder Saved." message:nil delegate:nil cancelButtonTitle:nil otherButtonTitles:nil]; 
      [alert show]; 
      [alert dismissWithClickedButtonIndex:0 animated:YES]; 
      [alert release]; 
     } 

     else 
     { 
      UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Reminder not saved" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
      [alert show]; 
      [alert release]; 
     } 

     rowID = sqlite3_last_insert_rowid(remindersDB); 
     NSLog(@"last inserted rowId = %d",rowID); 

     sqlite3_finalize(statement); 
     sqlite3_close(remindersDB); 

    } 

    //Alert for not entering any data 

    if ([textField.text length] == 0) 
    { 
     UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Fill Data" message:@"Please fill name,event and date of reminder" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; 
     [alert show]; 
     [alert release]; 
    } 

    ++self.numberOfSaves; 
    NSLog(@"Number of saves = %d",numberOfSaves); 

    [self.tableView reloadData]; 

}

Now I want to check how many times the button is clicked,I have an idea in mind that to create a function and used the condition 

    -(int)numberOfSaves 
    { 

    int saves = 0; 

    if(self.navigationItem.rightBarButtonItem.enabled==YES) 
    { 

      saves++; 

    } 
     return saves; 
    } 

にです......

を、このような状態を確認するためにとにかくがあります動作しない、どのように私はそれを達成することができますもしそうなら、私はObjective-Cのに初心者です、私を助けてください...

すべて事前にの

感謝:)

答えて

1

あなたはvoidメソッドから返すことはできません。

-(void)numberOfSavesから-(int)numberOfSavesに変更したいと思っていますが、これは正しい方法だと思っていますが、これはあなたの望むものではないと思います。

あなたはクラスのインスタンス変数を宣言したいと思うあなたのヘッダファイル(.H)で

@property (nonatomic, strong) NSInteger numberOfSaves; 

あなたの実装ファイル(.M)で、それを合成することを確認してください:

@synthesize numberOfSaves = _numberOfSaves; 

あなたIBAction方法置き換えます

- (IBAction)save:(id)sender 
{ 
    ++self.numberOfSaves; 
} 

をそして、ちょうどを捨てますメソッドをすべて一緒に使用します。これは私があなたがやろうとしていることを達成するはずです。あなたは私が掲示誤って、唯一のint型取ったself.numberOfSaves

+0

申し訳ありませんで、今コミットしている節約どのように多く把握することができ、私はポストを編集し、返信に感謝を参照してくださいが、その返信 –

+0

ああため おかげで動作していません...私は保存する]をクリックするとuは私が++ self.numberOfSavesを書き、コンソールのNSLog(@」で表示しようとしたときに言ったように、それは、実際には、正常に働いていなかったと言ってawfullyjohn申し訳ありませんが、実装 –

+0

後にご連絡いたします保存数=%d "、self.numberOfSaves); その表示数= 0、Iも開始numberOfSaves = 0保存します。 (ID)sender'が呼び出さ取得されています(IBAction)を保存 - をも言及せず、それは... 何私の間違ったステップは 'かどうかを確認してください –

関連する問題