最近审核app,苹果拒绝了,说点击发邮件会闪退
自己测试了,没有问题,后来在另外的设备再次测试,真的是闪退
发现如果系统没有配置邮件,就会出现这样的问题
使用MFMailComposeViewController的时候,要判断一下是否可以发哦

    if (![MFMailComposeViewController canSendMail]) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"请配置邮件"
                                                        message:@"你的设备不支持发邮件,需要你配置你的设备"
                                                       delegate:self
                                              cancelButtonTitle:@"好"
                                              otherButtonTitles:nil,nil];
        [alert show];
        return;
    }
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.headIndent = 15; // <--- indention if you need it
paragraphStyle.firstLineHeadIndent = 15; //首行缩进
paragraphStyle.lineSpacing = 7; // <--- magic line spacing here! 行间距
UIFont *font = xxx //
NSDictionary *attrsDictionary =
@{ NSFontAttributeName: font, //<-- if you need; & there are many more attrs
   NSParagraphStyleAttributeName: paragraphStyle};

self.textView.attributedText = [[NSAttributedString alloc]
initWithString:@"Hello World over many lines!" attributes:attrsDictionary];
现在Xcode都默认使用storyboard了,和原先xib方式相比,有很直观的便利。
但一些问题也比较陌生,比如如何push到xib?
那把navigationController作为入口即可
如何push到自身?
部分情况下是需要一个跟自己类似的viercontroller的,比如大集合到小集合,只是范围不同,但展示方式一样
这时候不能用performSegueWithIdentifier了
因为自己不能做segue到自身
那可以这样:

        UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        PhotoAlbumViewController *initViewController = [storyBoard instantiateViewControllerWithIdentifier:@"PhotoAlbum"];
        [self.navigationController pushViewController:initViewController animated:YES];


第一个参数是storyboard的名称,第二个是给里面的页面起个Storyboard ID名称即可
如果是自身storyboard里的viewcontroller,会更方便些
PhotoAlbumViewController *initViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PhotoAlbum"];
push和pop都可以按往常一样使用
Xcode里默认没有pch文件
要添加的话,可以手动添加
1 新建一个pch文件
2 在setting里设定 Prefix header为该pch文件

详细gif教程参考这个
http://www.cnblogs.com/YouXianMing/p/3989155.html
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath  
{  
    NSLog(@"点击了删除");  
    if (editingStyle == UITableViewCellEditingStyleDelete) {  
//从delegate删除该数据哦
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }  
    else if (editingStyle == UITableViewCellEditingStyleInsert) {  
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view  
    }  
}  
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath  
{  
    NSLog(@"手指撮动了");  
    return UITableViewCellEditingStyleDelete;  
}  
-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath  
{  
    return  @"删除";  
}  
  
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath  
{  
    return YES;  
}  
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {  
    return YES;  
}  
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {  
      
}  


参考的语句,滑动操作和点击删除都可行
处理删除操作时客官自己可以移除数据
另外也可以参考这个,低版本的ios可以看
http://rainbird.blog.51cto.com/211214/634587/
分页: 9/361 第一页 上页 4 5 6 7 8 9 10 11 12 13 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐