小编MrB*_*rBr的帖子

在iOS5中使用UISegmentedControl切换ViewControllers

我正在尝试一些非常简单的事情,但不知怎的,我无法让它发挥作用.我尝试做的就是使用UISegmentedControl在2个视图控制器之间切换,例如你可以在Highlights选项卡的App Store应用程序中看到它.

我正在使用iOS5和Storyboard.

这是我的Storyboad阵容:

在此输入图像描述

所以我有一个根视图控制器和两个UITableViews - 这2个我想切换的TableViews.

这是实现文件的样子

#import "SegmentedLocationViewController.h"
#import "PastEventsLocationViewController.h"
#import "FutureEventsLocationViewController.h"

@interface SegmentedLocationViewController()
@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentedControl;
@property (strong, nonatomic) NSArray *viewControllers;
@end


@implementation SegmentedLocationViewController

@synthesize segmentedControl = _segmentedControl;
@synthesize viewControllers = _viewControllers;

- (IBAction)indexDidChangeForSegmentedControl:(UISegmentedControl*)segmentedControl
{
    NSLog(@"index: %d", segmentedControl.selectedSegmentIndex);
}

- (void)setupViewControllers
{
    PastEventsLocationViewController *pastEventsLocationViewController = [[PastEventsLocationViewController alloc] initWithStyle:UITableViewStylePlain];
    FutureEventsLocationViewController *futureEventsLocationViewController = [[FutureEventsLocationViewController alloc] initWithStyle:UITableViewStylePlain];

    self.viewControllers = [NSArray arrayWithObjects:pastEventsLocationViewController, futureEventsLocationViewController, nil];
}

- (void)setupUI
{
    [self.segmentedControl addTarget:self action:@selector(indexDidChangeForSegmentedControl:) forControlEvents:UIControlEventValueChanged];
}

// Implement viewDidLoad to do …
Run Code Online (Sandbox Code Playgroud)

uisegmentedcontrol uiviewcontroller uikit ios

37
推荐指数
2
解决办法
3万
查看次数

ios设置包中的简单标题输出

我只想在设置文件中输出我的ios应用程序的版本号.

我知道我必须将设置文件添加到应用程序文件夹中.

当我构建并运行时,我可以看到标准设置包附带的4个设置.

为了获得一个简单的只读字符串,我将第二个值更改为以下值

在此输入图像描述

在代码(didFinishLaunchingWithOptions :)中,我调用以下内容:

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
[[NSUserDefaults standardUserDefaults] setValue:version forKey:@"version_number"];
[[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,没有任何事情发生.我只看到Group元素和toogle开关和滑块但没有标题行.谁知道我错过了什么?

非常感谢你!

xml objective-c ios

17
推荐指数
2
解决办法
1万
查看次数

未实现的委托方法导致崩溃

我创建了一个协议并将其分配给委托对象

@protocol AppBrainDelegate <NSObject>
@optional
- (void)didLocateUser;
- (void)didFinishLoadingDataWithData:(NSDictionary *)fetchedData;
@end

@interface Brain : NSObject
@property (strong, nonatomic) id <AppBrainDelegate> delegate;
Run Code Online (Sandbox Code Playgroud)

我认为协议声明中@optional的含义意味着,如果控制器不想要,则控制器不必监听委托方法.

如果没有在控制器中实现第一个委托方法,那么这是崩溃日志.如果我这样做,我不会崩溃.好像我不明白将委托方法声明为可选的概念.你能解释一下我的错误在哪里吗?

*由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [EventViewController didLocateUser]:无法识别的选择器发送到实例0x1fb300'

delegates objective-c ios

12
推荐指数
1
解决办法
6317
查看次数

CLLocationManager不会停止

亲爱的开发者,

我正在努力寻找一个解决我的问题的方法来重新定位CLLocationManager.

我在我的应用程序中使用CLLocationManager实例.如果用户选择设备上的主页按钮或终止应用程序,我希望停止位置服务.

因此我打电话[self.locationManager stopUpdatingLocation];- 但这不知何故不起作用.应用程序进入后台,状态栏右上角的小位置箭头不会消失.即使我添加[self.locationManager release]self.locationManager.delegate = nil;- 位置跟踪不会停止: - /

如果我转到我的设备设置并关闭应用程序的位置服务,它只会消失.每当我切换回位置服务时,我立即在开关切换旁边看到一个紫色箭头,图标会再次出现在状态栏中.

我的问题是,当应用程序进入后台或终止时,如何关闭位置服务?

非常感谢提前度过了美好的一天:-)

cllocationmanager ios

5
推荐指数
2
解决办法
6066
查看次数

MPMoviePlayerController在后台播放音频流

当应用程序进入后台时播放音频流时遇到麻烦.

我使用代码启动流:

NSURL *mediaURL = [NSURL URLWithString:@"http://url.to.my.stream"];

MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:mediaURL];

[[NSNotificationCenter defaultCenter] addObserver:self 

                                         selector:@selector(moviePlayBackDidFinish:) 

                                             name:MPMoviePlayerPlaybackDidFinishNotification 

                                           object:nil]; 



[mp setControlStyle:MPMovieControlStyleFullscreen];

[mp setMovieSourceType:MPMovieSourceTypeStreaming];

[mp setFullscreen:YES];



[self.view addSubview:[mp view]];



[mp prepareToPlay];

[mp play];
Run Code Online (Sandbox Code Playgroud)

它完美无缺.但是,当应用程序进入后台时,我在属性列表中设置了"App播放音频"标记,然后流停止播放.

如何让我的应用程序在后台播放音频流?

致以最诚挚的问候和感谢!

mpmovieplayercontroller ios

5
推荐指数
1
解决办法
8465
查看次数

序列化/反序列化php对象

我无法理解PHP中序列化/反序列化的概念.

假设我有一个非常简单的PHP对象(类someObject),并且在设置该对象的属性之后我想序列化它:

所以我打电话给:serialize($someObject);

我想通过html表单将此序列化对象转移到另一个php skript中,因此我将其设置为隐藏值:

<input type="hidden" name="someObject" value="<? print $someObject; ?>"
Run Code Online (Sandbox Code Playgroud)

在下一个PHP脚本中,我想使用unserialize来获取我的对象并将其传递给数据库.

$unserialize = unserialize($_POST['someObject'])
Run Code Online (Sandbox Code Playgroud)

但这总是返回BOOL(假) - 所以我在这里缺少什么?

谢谢你的帮助!

html php forms serialization

4
推荐指数
1
解决办法
2275
查看次数

了解RACSignal错误

我目前正在ReactiveCocoa中迈出第一步,并且我经历了一些陡峭的学习曲线来理解这些原理.

无论如何这里是我已经提出的.

我将NSArray属性绑定到RACSignal,以便能够通过网络对传入的JSON数据做出反应.

- (void)updateRandomUserData 
{
    @weakify(self);
    RAC(self, users) = [[self fetchRandomUserData] doNext:^(NSDictionary *json){
    @strongify(self);
    NSMutableArray *randomUsers = [NSMutableArray array];
        for (NSDictionary *dict in json[@"data"]) {
           BKRandomUser *randomUser = [MTLJSONAdapter modelOfClass:[BKRandomUser class] fromJSONDictionary:dict error:nil];
           [randomUsers addObject:randomUser];
        }

        self.users = randomUsers;
    }];
}
Run Code Online (Sandbox Code Playgroud)

信号创建如下所示:

- (RACSignal *)fetchRandomUserData
{

    return [[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {

      NSURLRequest *request = [NSURLRequest requestWithURL:url];

      AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
      [subscriber sendNext:JSON];
      } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON, NSError …
Run Code Online (Sandbox Code Playgroud)

objective-c ios reactive-cocoa

3
推荐指数
1
解决办法
1469
查看次数