我正在使用Storyboard构建iOS应用程序.根视图控制器是一个标签栏控制器.我正在创建登录/注销过程,它基本上工作正常,但我有一些问题.我需要知道设置这一切的最好方法.
我想完成以下任务:
到目前为止我所做的是将根视图控制器设置为Tab Bar Controller,并为我的Login视图控制器创建了一个自定义segue.在我的Tab Bar Controller类中,我检查它们是否在viewDidAppear
方法内登录,然后执行segue:[self performSegueWithIdentifier:@"pushLogin" sender:self];
我还设置了需要执行注销操作的通知: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(logoutAccount) name:@"logoutAccount" object:nil];
注销后,我清除Keychain中的凭据,运行[self setSelectedIndex:0]
并执行segue以再次显示登录视图控制器.
这一切都很好,但我想知道:这个逻辑应该在AppDelegate吗?我还有两个问题:
viewWillAppear
但是segue不会那么早.我愿意改变它.我已经考虑将登录屏幕设置为根视图控制器,或者在AppDelegate中创建导航控制器来处理所有事情......我只是不确定此时最好的方法是什么.
基本上我需要创建一个字符有限的textarea,但在开头只有一个单词,它们不能改变.
它需要是textarea的一部分,但我不希望用户能够删除它或编辑它.
我以为我可以创建一个JQuery函数blur()
来防止用户退格,但我还需要阻止他们选择该单词并删除它.
更新 我写了这个看起来很棒的JQuery!但是我喜欢下面的解决方案,因为它不需要Javascript.
<script type="text/javascript">
var $el = $("textarea#message_create_body");
$el.data('oldVal', $el.val());
$el.bind('keydown keyup keypress', function () {
var header = "Header: ";
var $this = $(this);
$this.data('newVal', $this.val());
var newValue = $this.data("newVal");
var oldValue = $this.data("oldVal");
// Check to make sure header not removed
if (!(newValue.substr(0, header.length) === header)) {
$(this).val(oldValue);
} else {
$(this).data('oldVal', $(this).val());
}
});
</script>
Run Code Online (Sandbox Code Playgroud) 基本上我有一个名为"Parts"的自定义帖子类型设置,目前有超过5,000个帖子.每个部件都有许多自定义字段,包括"部件号".目前,每个部分的URL是:
http://site.com/parts/name-of-part/
我宁愿拥有的是:
http://site.com/parts/XXXX-608-AB/(这是一个部件号,存储为自定义字段"partno".)
我相信我需要做两件事:
1)根据自定义字段"partno"制作一个脚本,以批量编辑每个现有部件的所有slug.
2)连接到Wordpress函数以触发它始终根据自定义字段"partno"为新零件创建slug.
有没有人知道如何完成这些方面中的一个或两个?
更新:以下是我最终用于更改现有帖子的代码
// Set max posts per query
$max = 500;
$total = 5000;
for($i=0;$i<=$total;$i+=$max) {
$parts = get_posts(array('post_type' => 'parts', 'numberposts' => $max, 'offset' => $i));
// loop through every part
foreach ( $parts as $part ) {
// get part number
$partno = get_post_meta( $part->ID, 'partno', true );
$updated_post = array();
$updated_post['ID'] = $part->ID;
$updated_post['post_name'] = $partno;
wp_update_post( $updated_post ); // update existing posts
echo $part->ID;
}
}
Run Code Online (Sandbox Code Playgroud)
更新:以下是我在functions.php中用来更改正在发布的帖子的代码 (部分归功于 …
我正在使用一个名为CSAppData
我的iPhone应用程序存储数据的单例.我正在存储一个CSInbox
在单例中调用的对象.当我注销我的应用程序时,我想清除该对象的数据.
这是我的单例代码,包括清除数据的方法:
- (id)init {
self = [super init];
if (self)
{
self.inbox = [[CSInbox alloc] init];
}
return self;
}
+ (CSAppData *)appData {
static CSAppData * appDataInstance;
@synchronized(self) {
if(!appDataInstance) {
appDataInstance = [[CSAppData alloc] init];
}
}
return appDataInstance;
}
+(void) clearData {
CSAppData *appData = [CSAppData appData];
appData.inbox = [[CSInbox alloc] init];
}
Run Code Online (Sandbox Code Playgroud)
但是,在我的一个视图控制器中,在initWithCoder
方法中,我存储了收件箱变量:
-(id) initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if(self) {
self.inbox = [[CSAppData appData] inbox];
} …
Run Code Online (Sandbox Code Playgroud) ios ×2
clear ×1
focus ×1
javascript ×1
jquery ×1
login ×1
logout ×1
objective-c ×1
php ×1
singleton ×1
slug ×1
textarea ×1
uistoryboard ×1
wordpress ×1