试着做一些我见过很多地方记录的事情,但似乎无法管理.我想在segue期间将数据从一个视图传递到另一个视图.
这是源视图中的prepareForSegue方法:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
//pass values
DetailViewController *dest = (DetailViewController *)[segue destinationViewController];
dest.locTitle = [value valueForKeyPath:@"title"];
dest.locInfo = [value valueForKeyPath:@"info"];
// NSLog(@"The title is: %@, and the info is: %@.",dest.locTitle,dest.locInfo);
}
Run Code Online (Sandbox Code Playgroud)
如果我最后启用NSLog,我会看到正确的值...
这是目标视图上的接口:
#import <UIKit/UIKit.h>
@interface DetailViewController : UIViewController{
}
@property (strong, nonatomic) NSString *locTitle;
@property (strong, nonatomic) NSString *locInfo;
@property (weak, nonatomic) IBOutlet UILabel *detailMainText;
@property (weak, nonatomic) IBOutlet UILabel *detailTitle;
@end
Run Code Online (Sandbox Code Playgroud)
...这里是目标视图上的viewDidLoad和相关的@synthesize:
@synthesize detailMainText,detailTitle,locTitle,locInfo;
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"In viewDidLoad - …Run Code Online (Sandbox Code Playgroud) 我遇到了一些我最终想到的东西,但认为可能有一种更有效的方法来实现它.
我有一个对象(一个采用MKAnnotation协议的NSObject),它有许多属性(标题,副标题,纬度,经度,信息等).我需要能够将此对象传递给另一个对象,该对象希望使用objectForKey方法从中提取信息,作为NSDictionary(因为这是从另一个视图控制器获取的内容).
我最终做的是创建一个新的NSMutableDictionary并在其上使用setObject:forKey来传输每条重要信息,然后我只传递新创建的字典.
有没有更简单的方法来做到这一点?
这是相关的代码:
// sender contains a custom map annotation that has extra properties...
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showDetailFromMap"])
{
DetailViewController *dest =[segue destinationViewController];
//make a dictionary from annotaion to pass info
NSMutableDictionary *myValues =[[NSMutableDictionary alloc] init];
//fill with the relevant info
[myValues setObject:[sender title] forKey:@"title"] ;
[myValues setObject:[sender subtitle] forKey:@"subtitle"];
[myValues setObject:[sender info] forKey:@"info"];
[myValues setObject:[sender pic] forKey:@"pic"];
[myValues setObject:[sender latitude] forKey:@"latitude"];
[myValues setObject:[sender longitude] forKey:@"longitude"];
//pass values
dest.curLoc = myValues; …Run Code Online (Sandbox Code Playgroud) 我正在尝试在iOS6中实现新的社交框架,并让它工作,除了2个奇怪的问题.如果我启用了我感兴趣的服务(例如...... FaceBook),那么它可以正常工作.但是,如果从设置面板中删除帐户(让我们说FaceBook,为了保持一致),那么我会在模拟器和设备中获得不同的,令人沮丧的行为.
这是我的视图控制器中的相关代码:
//Method for FaceBook
- (IBAction)doFacebook:(id)sender{
//check to see if facebook account exists
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
// Create the view controller defined in the .h file
fb=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// make the default string
NSString *FBString= [NSString
stringWithFormat:@"%@\r via #GibberishGenerator", gibText.text];
[fb setInitialText:FBString];
// show the controller
[self presentViewController:fb animated:YES completion:nil];
}
}
Run Code Online (Sandbox Code Playgroud)
在解雇上述方法时,这是一种奇怪的行为:
在模拟器(版本6.0(358.4)中,我得到对话框通知我没有使用"设置"和"取消"按钮设置任何faceBook帐户.点击"设置"只是取消对话框,但不带我到设置面板.
在运行6.01的iPhone 4s上,点击触发该方法的按钮会导致......什么都没有.换句话说,我没有通知对话通知我必须设置一个FaceBook帐户.
在此先感谢您的帮助.
这是我的新实现,基于user1734802的有用评论.
//Method for FaceBook
- (IBAction)doFacebook:(id)sender{
// Create the view controller defined in the .h …Run Code Online (Sandbox Code Playgroud) 我一直在努力让(横幅)iAds正确地显示在iPhone,并且iPad只是显示iPhone应用程序(按比例放大).我仍然不知道如何解决这个问题,并且没有发现其他人遇到这个问题.
然后我注意到,iOS7有一种方法可以在应用程序中自动使用横幅广告,方法是:
self.canDisplayBannerAds=YES:
Run Code Online (Sandbox Code Playgroud)
......在viewDidLoad方法中.这似乎是一种很酷,简化的横幅实现方式,但在使用这种自动化方法时却没有弄清楚如何设置委托.可以这样做,还是你必须做更多的手动方法来创建adBannerView,设置委托,然后实现委托方法?
我读过的每一个类似的问题,但已经确定无论我在做一些愚蠢的事(可能),或者我不掌握NSArray方法containsObject:
我正在尝试设置UITableView包含已保存的"收藏夹"的内容; 保存为名为"MapAnnotations"的自定义类的位置.这包含坐标,标题,信息字段和其他一些参数.我成功地从一个NSUserDefaults实例保存/检索它,但似乎无法成功检测到我的重复对象NSMutableArray.
这是相关的代码:
-(void)doSetUp
{
//load up saved locations, if it exists
NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults];
//if there are saved locations
if ([myDefaults objectForKey:@"savedLocations"]) {
NSLog(@"file exists!");
//get saved data and put in a temporary array
NSData *theData = [myDefaults dataForKey:@"savedLocations"];
//my custom object uses NSCode protocol
NSArray *temp = (NSArray *)[NSKeyedUnarchiver unarchiveObjectWithData:theData];
NSLog(@"temp contains:%@",temp);
//_myFavs currently exists as a NSMutableArray property
_myFavs = [temp …Run Code Online (Sandbox Code Playgroud) 我正在努力尝试在这里找到一些东西,并且可以使用一些指针.编写具有Web视图的应用程序.我希望它从一定距离开始,找到用户位置,并放大到该点,居中,然后添加地图注释.
我理解每个要求的机制,但是对它们进行排序时遇到问题,以便它们按顺序发生.由于Obj-C的并发性,我不能依赖于下一次启动之前完成的任务.
我正在寻找能让我完成一项任务的解决方案,完成后再做,等等.我认为这将涉及块,但我只是学习这一切,他们让我头晕目眩.
我很感激任何建议.提前致谢.
ios ×5
objective-c ×3
facebook ×1
iad ×1
ios6 ×1
ios7 ×1
nsdictionary ×1
segue ×1
uistoryboard ×1