大家问候。
我正在尝试实现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/