Hello Friends我是iOS应用程序的新手。我使用KGModel库来显示弹出窗口。它的工作正常。但我想知道如何在单击按钮时关闭此弹出窗口。
我的代码是: -
#import "ViewController.h"
#import "KGModal.h"
#import "CRTableViewCell.h"
@interface ViewController ()
@end
@implementation ViewController
{
NSArray *dataSource;
bool selected;
NSMutableArray *selectedMarks;
UITableView *mytable;
}
- (void)viewDidLoad {
[super viewDidLoad];
dataSource = [NSArray arrayWithObjects:@"Egg Benedict", @"Mushroom Risotto", @"Full Breakfast", @"Hamburger", @"Ham and Egg Sandwich", @"Creme Brelee", @"White Chocolate Donut", @"Starbucks Coffee", @"Vegetable Curry", @"Instant Noodle with Egg", @"Noodle with BBQ Pork", @"Japanese Noodle with Pork", @"Green Tea", @"Thai Shrimp Cake", @"Angry Birds Cake", @"Ham and Cheese Panini", nil];
selectedMarks = [NSMutableArray new];
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
UIView *contentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, screenWidth-50, screenHeight-50)];
UITableView *mytableview = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, screenWidth-50, screenHeight-100)];
mytableview.delegate =self;
mytableview.dataSource=self;
[contentView addSubview:mytableview];
UIButton *save = [[UIButton alloc] initWithFrame:CGRectMake(0, screenHeight-100, screenWidth-50, 50)];
[save setTitle:@"SAVE" forState:UIControlStateNormal];
[save setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[save addTarget:self action:@selector(saveAction:) forControlEvents:UIControlEventTouchUpInside];
[save setBackgroundColor:[UIColor lightGrayColor]];
[contentView addSubview:save];
[[KGModal sharedInstance] showWithContentView:contentView andAnimated:YES];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [dataSource count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CRTableViewCellIdentifier = @"cellIdentifier";
// init the CRTableViewCell
CRTableViewCell *cell = (CRTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CRTableViewCellIdentifier];
if (cell == nil) {
cell = [[CRTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CRTableViewCellIdentifier];
}
NSString *text = [dataSource objectAtIndex:[indexPath row]];
cell.textLabel.font = [UIFont systemFontOfSize:12.0];
cell.isSelected = [selectedMarks containsObject:text] ? YES : NO;
cell.textLabel.text = text;
mytable=tableView;
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath
{
NSString *text = [dataSource objectAtIndex:[indexPath row]];
if ([selectedMarks containsObject:text])// Is selected?
[selectedMarks removeObject:text];
else
[selectedMarks addObject:text];
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
-(void)saveAction:(id)sender{
NSLog(@"%@",sender);
selected = !selected;
NSLog(@"%lu",[dataSource count]);
for(int i=0; i<[dataSource count]; i++){
NSString *text = [dataSource objectAtIndex:i];
if(selected){
[selectedMarks addObject:text];
}else{
[selectedMarks removeObject:text];
}
}
[mytable reloadData];
KGModal *model = [[KGModal alloc]init];
[model hideAnimated:YES withCompletionBlock:nil];
//NSLog(@"%@", selectedMarks);
}
我想在点击保存按钮时关闭此弹出窗口。请帮助我。
答案 0 :(得分:0)
如果您想使用KGModel
按钮关闭Save
,请在按钮操作中使用以下代码
[KGModal sharedInstance].animateWhenDismissed = YES;
您可以在here
中看到该属性// Determines if the modal should dismiss if the user taps outside of the modal view
// Defaults to YES
@property (nonatomic) BOOL tapOutsideToDismiss;
// Determines if the close button or tapping outside the modal should animate the dismissal
// Defaults to YES
@property (nonatomic) BOOL animateWhenDismissed;
// Determins close button type (None/Left/Right)
// Defaults to Left