Of course, only the last valeur is save, as you don't load the previous value in weightLog before adding the new one ! Also one more things, you should change the key for each value.
Try to use this (the date will include year + month + day + hour + minute + second, so don't click more than 1 time per second ;-D ) :
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSMutableDictionary *weightLog = [NSMutableDictionary dictionaryWithDictionary:[userDefaults objectForKey:@"Weightlog"]];
NSString *date = [NSDateFormatter localizedStringFromDate:[NSDate date]
dateStyle:NSDateFormatterShortStyle
timeStyle:NSDateFormatterFullStyle];
[weightLog setObject:self.weightInput.text forKey:date];
NSLog(@"neweight you entered is %@", self.weightInput.text);
NSLog(@"weightlog is %@", weightLog);
[userDefaults setObject:weightLog forKey:@"Weightlog"];
[userDefaults synchronize];