0

我正在学习Objective-C,但我被困在涉及多个视图控制器的这一点上。我了解到,如果您的故事板上有多个视图,则必须创建一个单独的文件(例如 ViewTwoControllor.h 和 .m),然后通过单击它们并在第三个选项卡右侧的面板中将这些文件链接到您的视图您必须输入“ViewTwoController”。例如,我可以通过单击按钮在 Safari 中打开一个网站。但我希望在第二个视图中集成 Twitter。

Twitter iOS 5 集成很顺利,直到我把它放在第二个视图上。我对按钮使用以下代码。

TWTweetComposeViewController *tweet = [[TWTweetComposeViewController alloc]init];

[tweet setInitialText:@"This is a pretty awesome application bro."];
[tweet addURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.stackoverflow.com"]]];

[self presentedViewController:tweet animated:YES completion:nil];

包括 Twitter 框架,IBAction 等也很好。这适用于单视图应用程序,但现在我收到以下错误:“接收器类型 'ViewTwoController' 例如消息未声明具有选择器 'presentedViewController:animate:completion:' 的方法。

房间里有人知道如何解决这个问题吗?

4

1 回答 1

1

你可能想要presentModalViewController,不是presentedViewController

查看UIViewController的文档。您会看到在这种情况下您有两个选择:presentViewController:animated:completionpresentModalViewController:animated

如果您是 Objective-c 的新手,选择器本质上只是一个方法名称。错误消息告诉您问题出在哪里:您正在尝试将消息(在本例中为选择器presentedViewController:animated:completion)发送到不知道如何响应该消息的对象(在本例中为 的实例ViewTwoController) . 这表明您调用的方法不正确,或者您尝试调用该方法的对象不是您所想的子类。

于 2012-06-14T16:58:48.357 回答