大家问候。

我正在尝试实现Nate Weinders的“ShareKit”框架。一切顺利,直到最后一步。

我在接口生成器中有一个通用的“动作按钮”设置,名称为“shareBtn”

在我的.h中,我有:

-(IBAction)shareBtn;

在我的.m文件中,我设置了一个通用的(有效的)UIActionSheet:

首先,我引入了ShareKit框架:#import“SHK.h”

对于我的按钮,我有:
 -(IBAction)shareBtn {
         UIActionSheet *actionsheet = [[UIActionSheet alloc]
                                       initWithTitle:@"Which do you prefer?"
                                       delegate:self
                                       cancelButtonTitle:@"Cancel"
                                       destructiveButtonTitle:@"Destuctive Button"
                                       otherButtonTitles:@"Button 1", @"Button 2", @"Button 3", nil
                                       ];
         [actionsheet showInView:[self view]];
         [actionsheet release];

}

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSLog(@"button %i clicked", buttonIndex );
}

这一切都很好,花花公子。现在,根据ShareKit的安装页面上的说明,我将放置以下代码以使操作表挂接到sharekit框架中:
- (void)myButtonHandlerAction
{
    // Create the item to share (in this example, a url)
    NSURL *url = [NSURL URLWithString:@"http://getsharekit.com"];
    SHKItem *item = [SHKItem URL:url title:@"ShareKit is Awesome!"];

    // Get the ShareKit action sheet
    SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];

    // Display the action sheet
    [actionSheet showFromToolbar:navigationController.toolbar];
}

看起来很简单,我稍微使用了语法(使用self.toolbar等),但我真的很难理解这个概念以及我所缺少的内容。我阅读了有关此内容的iOS文档,参考了几本书,并进行了大量在线搜索。

只是希望可以看到一个明显的错误或可以帮助我。

谢谢。

这是我尝试过的内容和错误:

第一次尝试
 -(IBAction)shareBtn {
    // Create the item to share (in this example, a url)
    NSURL *url = [NSURL URLWithString:@"http://getsharekit.com"];
    SHKItem *item = [SHKItem URL:url title:@"ShareKit is Awesome!"];

    // Get the ShareKit action sheet
    SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];

    // Display the action sheet
    [actionSheet showFromToolbar:navigationController.toolbar];
}

错误:“未声明navigationController”

///////第二次尝试///////
 -(IBAction)shareBtn {
    // Create the item to share (in this example, a url)
    NSURL *url = [NSURL URLWithString:@"http://getsharekit.com"];
    SHKItem *item = [SHKItem URL:url title:@"ShareKit is Awesome!"];

    // Get the ShareKit action sheet
    SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];

    // Display the action sheet
    [actionSheet self.toolbar];
}

///////错误:“。”之前的“预期的”]”。 token ” ///////////

///////三次尝试////////
 -(IBAction)shareBtn {
    // Create the item to share (in this example, a url)
    NSURL *url = [NSURL URLWithString:@"http://getsharekit.com"];
    SHKItem *item = [SHKItem URL:url title:@"ShareKit is Awesome!"];

    // Get the ShareKit action sheet
    SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];

    // Display the action sheet
    [actionSheet self.toolbar];
}

///////错误:“。”之前的“预期的”]”。 token ” ///////////

///////第四次尝试////////
-(IBAction)shareBtn {
    UIActionSheet *actionsheet = [[UIActionSheet alloc] init];

    // Create the item to share (in this example, a url)
    NSURL *url = [NSURL URLWithString:@"http://getsharekit.com"];
    SHKItem *item = [SHKItem URL:url title:@"ShareKit is Awesome!"];

    // Get the ShareKit action sheet
    SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];

    // Display the action sheet
    [actionsheet showInView:[self view]];
    [actionsheet release];
}

//////错误:未使用的变量'actionSheet'//////////
///////应用启动,但是就像操作表弹出一样崩溃////////

仅供参考:ShareKit安装页面:[url = http://www.getsharekit.com/install/] ShareKit:安装[/ url]

也:
我现在正在阅读《大书呆子牧场指南-iPhone编程》。

作为一种学习的方法,我尝试应用一些我已经学习过的概念(其中一些超出了我的现有知识)。我通常会理解具体的错误,但对如何执行此操作一无所知。

我对这个actionSheet感到困惑的是,它与我所学到的第一种方法完美配合。我现在正在尝试通过引入ShareKit Framework并使其执行来扩展该知识。似乎真的很简单,我真的很灰心...

这是ShareKit的安装(它说“在三行简单的代码中”)
第4步:
http://www.getsharekit.com/install/

最佳答案

我知道了!

最终代码:

-(IBAction)shareBtn {
    // Create the item to share (in this example, a url)
    NSURL *url = [NSURL URLWithString:@"http://getsharekit.com"];
    SHKItem *item = [SHKItem URL:url title:@"ShareKit is Awesome!"];

    // Get the ShareKit action sheet
    SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];

    // Display the action sheet
    [actionSheet showInView:[self view]];
    [actionSheet release];
}

让我感到困惑的是两件事情,我没有在actionSheet中为showInView或发行版大写“S”。第二个是使用showInView:[self view]];而不是.toolbar方法。

谢谢,我知道只有一点建议可以帮助我调试。

关于iphone - IB ActionsheetVS。程序化的 Action 表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5119729/

10-11 14:53